Javascript 从本机应用发送到HTTPS API的安全密码
我有一个HTTPS API服务器,想从本地Android应用程序(内置Cordova)连接到它。应用程序使用的是一个简单的XHR请求,如下所示: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
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仅在传输过程中进行加密。调试器将在发送信息之前存储信息。所以它应该被加密