如何防止表单被 XSSME、SQLinjectMe(这两个是免费的 Firefox 附加组件)、Accunetix Web Scanner 等大型漏洞扫描器扫描?
这些“Web 漏洞扫描器”可以捕获包含所有字段的表单副本,并在几分钟内发送数千个测试,在字段中引入各种恶意字符串。
即使您对您的输入进行了很好的清理,服务器中也存在速度响应延迟,有时如果表单发送电子邮件,您将在接收方邮箱中收到数千封电子邮件。我知道减少这个问题的一种方法是使用 CAPTCHA 组件,但有时这种组件对于某些类型的表单来说太多了,并且会延迟用户响应(例如登录/密码表单)。
有什么建议吗?
预先感谢并为我的英语感到抱歉!
最佳答案
嗯,如果这是一个主要问题,您可以添加服务器端提交率限制器。当有人提交表单时,在数据库中存储一些关于他们的 IP 地址以及他们提交表单的时间的信息。然后每当有人提交表单时,检查数据库以查看自该 IP 地址上次提交表单以来是否“足够长”。即使是 10 秒等相当短的等待也会严重减慢这种自动探测的速度。该数据库可以每天/每小时/任何时间自动清除,您不需要长时间保留数据。
当然,可以访问僵尸网络的人可以避免这个限制器,但是如果您的站点受到大型僵尸网络的攻击,您可能会遇到比这更大的问题。
关于security - 如何在不使用 CAPTCHA 组件的情况下防止批量漏洞扫描?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849077/