security - 如何在不使用 CAPTCHA 组件的情况下防止批量漏洞扫描?

标签 security

如何防止表单被 XSSME、SQLinjectMe(这两个是免费的 Firefox 附加组件)、Accunetix Web Scanner 等大型漏洞扫描器扫描?

这些“Web 漏洞扫描器”可以捕获包含所有字段的表单副本,并在几分钟内发送数千个测试,在字段中引入各种恶意字符串。

即使您对您的输入进行了很好的清理,服务器中也存在速度响应延迟,有时如果表单发送电子邮件,您将在接收方邮箱中收到数千封电子邮件。我知道减少这个问题的一种方法是使用 CAPTCHA 组件,但有时这种组件对于某些类型的表单来说太多了,并且会延迟用户响应(例如登录/密码表单)。

有什么建议吗?

预先感谢并为我的英语感到抱歉!

最佳答案

嗯,如果这是一个主要问题,您可以添加服务器端提交率限制器。当有人提交表单时,在数据库中存储一些关于他们的 IP 地址以及他们提交表单的时间的信息。然后每当有人提交表单时,检查数据库以查看自该 IP 地址上次提交表单以来是否“足够长”。即使是 10 秒等相当短的等待也会严重减慢这种自动探测的速度。该数据库可以每天/每小时/任何时间自动清除,您不需要长时间保留数据。

当然,可以访问僵尸网络的人可以避免这个限制器,但是如果您的站点受到大型僵尸网络的攻击,您可能会遇到比这更大的问题。

关于security - 如何在不使用 CAPTCHA 组件的情况下防止批量漏洞扫描?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849077/

相关文章:

asp.net - 仅显示安全内容

PHP Cookie 安全问题

javascript - Android 混合应用程序上的 http 安全性

security - 禁止用户选择通用密码

python - 使用 python SMTP 库凭据安全发送电子邮件

javascript - 如何使用 'host-proof' 范例共享信息?

security - 从 HTTP 表单提交到 HTTPS 是否安全?

security - Node.js + Express.js 用户权限安全模型

javascript - 验证用 Phonegap(或等效)包装的 HTML5 应用程序

c# - 出于安全原因,弹出窗口不能隐藏在屏幕边缘