我有一个表单,有人可以创建新用户。一旦输入字段失去焦点,我想添加一些AJAX来检查是否采用了用户名。 我不确定如何解决这个问题,因为这可能会给暴力攻击铺平道路,因为你可以查看任何用户名并查看它是否存在。 有什么建议吗?
答案 0 :(得分:3)
可能最好的选择是在服务器端脚本中限制允许用户在30分钟内尝试(基于会话或IP)到合理限制(即10)的尝试次数时间段。
另一种选择是在页面上放置验证码,以确保用户是人,而不是强制执行程序。
答案 1 :(得分:2)
为什么不
答案 2 :(得分:2)
您可以等到提交表单进行检查后,而不是在输入字段失去焦点时提示。如果已经使用了用户名,则可靠的解决方案是建议其他用户名。
答案 3 :(得分:2)
如果您是论坛,则用户名不是私有的。只需使用服务器逻辑来限制每分钟的呼叫数量。如果你是一家银行,不同的故事;但在这种情况下,您可以将用户名分配给银行帐户。
答案 4 :(得分:1)
我从来没有这样做,所以只是一个想法。生成与表单一起传输的一些唯一ID(例如uuid)。当您检查用户名include(并检查)此唯一ID时。当然,这需要一些服务器端的参与,但至少你不能在不渲染表单的情况下直接调用这个函数。
注意:为了提高安全性,每次用户检查值时都需要更新表单唯一ID。