我即将包括一个登录系统到我的网站,但我不认为这是一个好主意的安全使用ajax发送和接收确认从外部php脚本称为login.php用同样的方法注销另一个logout.php有什么建议吗
安全性
AJAX与普通的旧表单+刷新页面一样安全。最后,它总是一个HTTP请求。你为什么这么想?
然而,从可用性的角度来看,确保禁用javascript的人仍然可以登录到你的应用程序。
确保使用POST
方法发送AJAX请求,因为GET
请求,及其参数(例如,让我们说,明文密码)可能会在您的web服务器日志中结束,除非您使用HTTPS。
正如gracimgoire指出的:
同样从可用性的角度来看,自动完成对chrome上的AJAX表单不起作用,对firefox中加载AJAX的表单也不起作用。浏览器甚至不会建议记住你的密码
我想不出使用Ajax处理登录和注销有什么安全隐患。在ajax和服务器端层之间来回发送什么并不重要(只要不将纯文本密码从服务器发送到客户端),因为会话将是保存授权状态的会话。
但是,您仍然需要刷新页面,或者重定向以向刚刚授权的用户显示适当的内容。所以,我不认为Ajax在这种情况下是有效的
只要有防止XSRF攻击的方法,通过ajax POST登录应该是安全的。这可以通过在ajax请求中设置X-CSRFToken头来实现。在服务器端,您应该有某种中间件来检查和验证header中的CSRF令牌。
您可以在cookie中设置csrf令牌,然后在header中查询它并设置它:
var csrftoken = $.cookie('csrftoken');
xhr。setRequestHeader("X-CSRFToken",csrftoken);
(这里我使用jquery cookie库来说明)
GET或POST与ajax调用确实具有相同的安全风险。其中一个或另一个没有隐含风险。
您可以将AJAX与SSL容器(HTTPS)一起使用。但是发送者页面也必须加密。
ajax帖子是安全的
这完全取决于你的编码,你必须记住所有可能发生的攻击
仅使用ajax发送数据,并在PHP中完成所有身份验证,并返回成功消息