我有一个表格,有人可以在其中创建新用户。一旦输入字段失去焦点,我想添加一些 AJAX 来检查是否使用了用户名。我不确定该怎么做,因为这可能会为暴力攻击铺平道路,因为您可以检查任何用户名并查看它是否存在。有什么建议么?
问问题
506 次
5 回答
3
最好的选择可能是在服务器端脚本中,将允许用户在 30 分钟时间内进行的尝试次数(基于会话或 IP)限制为合理的限制(即 10 次)。
另一种选择是在页面上放置验证码,以确保用户是人而不是暴力破解程序。
于 2010-05-29T14:40:47.970 回答
2
为什么不
- 限制新用户可以尝试的次数(例如,在一分钟内只允许“n”)
- 提供一种机制来根据用户的输入建议可用的用户名,从而减少用户通常会进行的有效尝试的次数
于 2010-05-29T14:38:30.910 回答
2
输入字段失去焦点时不提示,可以等到表单提交后进行检查。如果用户名已被使用,一个可靠的解决方案是建议替代用户名。
于 2010-05-29T14:39:27.433 回答
2
如果你是一个论坛,用户名不是私人的。只需使用服务器逻辑来限制每分钟的调用次数。如果您是银行,则另当别论;但在这种情况下,您可以将用户名分配给银行帐户。
于 2010-05-29T14:40:41.177 回答
1
我从来没有这样做过,所以只是一个想法。生成一些与表单一起传输的唯一 ID(例如 uuid)。当您检查用户名时,请包含(并检查)此唯一 ID。当然,这需要一些服务器端的参与,但至少你不能在不渲染表单的情况下直接调用这个函数。
注意:为了提高安全性,您需要在用户每次检查值时更新表单唯一 ID。
于 2010-05-29T14:38:43.077 回答