如何防止在ajax中发布远程表单?

时间:2011-08-30 18:12:46

标签: forms posting

如何限制我在ajaxRequest.open中使用的php文件通过特定页面访问?

我想使用类似会话的东西来防止远程表单发布,因为可以通过这种方式检查用户名的许多猜测密码。

我知道检查推荐人不是一个安全的想法。 基于IP的自动阻止是安全的吗?

检查它是否通过Ajax发布是否是一个好主意,如果不是否认,因为没有人可以通过Ajax远程发布?这真的很安全吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

你正在混淆。 AJAX依赖HTTP协议(例如:POSTGET)来工作。因此,使用AJAX将阻止人们伪造查询。有一个名为HTTP_X_REQUESTED_WITH的标题,但与来自客户端的任何一样,它不应该被信任。

关于远程AJAX发布的担忧更多地与称为Cross-site remote forgery, or CSRF的漏洞利用相关。防止这种情况的一种方法是使用CSRF令牌(阅读维基页面)。你(似乎)描述的问题是别的。

在处理登录时,我喜欢实现不同的故障阈值:

  • 如果您尝试登录帐户并失败X次,则会收到CAPTCHA。这样可以防止人们使用机器人强行输入密码,而不会给合法用户造成太大的伤害。

  • 如果您失败X + Y次,该帐户将被锁定Z段时间。

  • 如果看起来很多登录失败来自您的IP,它将被阻止。