我正在编写一个 PHP / JS Web 应用程序,其中大量使用 XMLHttpRequest 对象(用于页面更新/AJAX 等)。我在用户管理(登录、注册等)代码中使用了这一点 - 通过 XMLHttpRequests 以纯文本形式发送密码(然后由服务器进行哈希处理并安全地存储在数据库中)。对于一个具体的(准系统)示例,它是这样的:
// Define the HTTP request parameters
var username = "my_username";
var password = "my_super_secure_password";
var addr = "/my_app/check_login";
var post = "ACTION=CREATE_USER&USERNAME=" + username + "&PASSWORD=" + password;
// Create the XMLHttpRequest object
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function ()
{
// AJAX stuff goes here!
}
xhttp.open("POST", addr, true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
// And away it goes!
xhttp.send(post);
显然,在我的本地主机设置上(仅使用 MAMP 的 HTTP,没有安全性),这会产生奇迹。然而,当我将其上传到我的主机服务器(HTTPS / SSL 等)时,我担心这是否会成为.成功并且(最重要的是) b.安全吗?
我不知道 XMLHttpRequest 对象是否会自动调整为页面正在使用的相同协议,如果不是,显然通过它发送用户密码将是一个安全块。如果比我更有能力的人能让我知道,如果这实际上不安全,是否有其他方法可以更安全地使用 AJAX,我将不胜感激。
谢谢!