Javascript 从本机应用发送到HTTPS API的安全密码

Javascript 从本机应用发送到HTTPS API的安全密码,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我有一个HTTPS API服务器,想从本地Android应用程序(内置Cordova)连接到它。应用程序使用的是一个简单的XHR请求,如下所示: function authenticate() { const username = document.querySelector('#usernameInput').value; const password = document.querySelector('#passwordInput').value; const xhr = new

我有一个HTTPS API服务器,想从本地Android应用程序(内置Cordova)连接到它。应用程序使用的是一个简单的XHR请求,如下所示:

function authenticate() {
  const username = document.querySelector('#usernameInput').value;
  const password = document.querySelector('#passwordInput').value;
  const xhr = new XMLHttpRequest();
  const body = JSON.stringify({
    username,
    password,
  });

  xhr.open('POST', url, true);
  xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');
  xhr.onload = function () {
    console.log(this.responseText);
  };
  xhr.onerror = function () {
    alert('Request failed');
  };
  xhr.send(body);
}

function handleSubmit(event) {
  event.preventDefault();
  authenticate();
}

document.querySelector('#submitButton').addEventListener('click', handleSubmit);

请求工作正常,用户名/密码在服务器上经过身份验证或返回403。我关心的是,如果我在本地调试器中查看请求负载,就可以看到明文中的密码。这是否意味着密码通过网络公开?如果是这样,我应该采取什么不同的做法?

当使用HTTPS时,只有您的计算机和服务器知道解密请求中数据的密钥,因为他们以前在SSL/TLS连接过程中同意密钥

您网络中的其他计算机应该无法读取您请求的内容,因为它们没有密钥。您可以在浏览器的调试器中以纯文本形式看到它,因为它在您实际发送它之前是纯文本


在将数据发送到服务器之前,不要担心手动加密数据,协议已经解决了这一问题。

https仅在传输过程中进行加密。调试器将在发送信息之前存储信息。所以它应该被加密