我有一个页面ajax_check_user_pass
通过AJAX检查用户的用户名和密码。
此页中的Ajax代码将用户名和密码张贴到php文件php_check.php
。 php_check.php
检查用户名和密码以匹配数据库。
如何确保php_check.php接收的用户名和密码来自ajax_check_user_pass
并且不是由某人伪造的?
我已经使用会话,但它不工作。另外,我知道检查引荐来源不是可靠的。
在此先感谢。
我有一个页面ajax_check_user_pass
通过AJAX检查用户的用户名和密码。
此页中的Ajax代码将用户名和密码张贴到php文件php_check.php
。 php_check.php
检查用户名和密码以匹配数据库。
如何确保php_check.php接收的用户名和密码来自ajax_check_user_pass
并且不是由某人伪造的?
我已经使用会话,但它不工作。另外,我知道检查引荐来源不是可靠的。
在此先感谢。
事实是,您不知道是谁向您发送用户名和密码,他们必须输入此信息的事实证明您不知道他们是谁,只要您清理发布的信息它应该按照你想要的方式工作。
许多网站实施了最大次数的尝试,但这真的取决于您。
他的问题不是“谁”,而是如何验证请求的来源。 – thwd
“谁”是*起源,请求者的身份。 – jondavidjohn
>“我如何确保php_check.php收到的用户名和密码来自ajax_check_user_pass” – thwd
这种类型的攻击被称为CSRF,可以通过在会话中存储挑战令牌或Cookie,以避免在进行任何进一步操作之前,对表单或Ajax调用在您的网站上发出的每个请求进行检查操作。
阅读:
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
同时确保再生此令牌每隔X分钟或Y浏览量,无论先来了。
这是我的观点,CSRF在面向公众的登录表单上的保护似乎有点毫无意义... – jondavidjohn
真的很重要吗?如果您担心暴力破解,请在x次尝试后实施自动阻止机制。 – Rijk
这是用户输入;它怎么可能是假的?你试图抵御什么攻击? – Quentin