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