我正在研究如何通过Ajax安全地向PHP发送用户名和密码,以及如何正确地将值存储在MySQL数据库中。
过去我使用过以下类型的例子:
var formData = {username:$('#username').val(), password:$('#password').val()};
//SEND
$.ajax({
type: "POST",
url: "/signin.php",
data: formData,
success: function(data) {
//success
}
});
这是通过JavaScript发送值然后从PHP获得返回OK
或FAIL
。但这足够安全吗?我希望有人能够指出我从JavaScript到PHP发送敏感数据的正确和安全的方向。
答案 0 :(得分:6)
为了确保安全,您至少需要确保三件事:
要做到这一点"对"你还应该考虑:
创建数据库用户,尤其是用于身份验证。相应地限制表/模式访问。使用单独的子域进行身份验证。使用fastcgi-php或suphp设置用户对数据库的auth访问权限。允许普通的PHP数据库用户只从这个"沙箱中读取信号量或其他登录状态凭证。"
当用户输入密码时,请使用网站验证,ssl和验证"短语"或者他们在创建帐户时设置的图片,以便他们可以确定他们正在输入您的服务器。
此外,大多数安全问题都将涉及您登录后的操作。您打算如何维护用户的会话?更高的安全性通常需要损害用户的便利性。您需要仔细考虑用户在经过身份验证后可以访问哪些类型的功能和信息。您的安全计划应考虑到这一点。
您可能考虑的另一种方法是使用OAuth2提供商,例如Google和Facebook。