【问题标题】:Protect against a DoS attack without a CAPTCHA无需验证码即可抵御 DoS 攻击
【发布时间】:2023-05-15 19:59:01
【问题描述】:

我很想知道一种保护我的电子邮件和联系表单免受 DoS 攻击的好方法。

我有一个“与朋友分享”功能,可以打开我创建的表单,但我不想输入验证码。

我在这里看到了一个 jQuery + PHP 解决方案: http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs#PHP_File

这看起来是个不错的解决方案,我希望有人帮助我将 PHP 翻译成 C#。我猜最好使用 ASHX 文件。

如果还有其他(更好的?)解决方案,我很想听听。

【问题讨论】:

  • 我想您可能对 DoS 攻击是什么感到困惑?验证码仅有助于对抗试图使用系统的自动机器人。 DoS 尝试通常在数据包级别进行,不会尝试实际使用手头的系统。
  • 将其 src 属性设置为攻击者 IP 地址的验证码怎么样?每次他向您的页面提出请求时,您都可以立即回他。 :)
  • @George,如果你已经知道这是一个“攻击者”,你应该阻止他们。攻击者不太可能利用您的响应。
  • 不像攻击者会去请求一个IMG url。这些通常是微不足道的。最好是重复点击一个 PHP 页面(特别是如果它是一个“复杂”的页面),以便最大限度地点击数据库/服务器资源。
  • 我实际上是在试图阻止垃圾邮件进入邮箱。发生的事情是人们会使用“告诉朋友”向其他人发送垃圾邮件,而我们会将被拒绝的电子邮件返回到我们的邮箱。

标签: asp.net jquery captcha denial-of-service


【解决方案1】:

mollom - 易于使用且比验证码更智能。我发现它真的很好用,而且很容易使用。

【讨论】:

    【解决方案2】:

    郑重声明,验证码无助于抵御 DOS 攻击。 攻击电脑只会反复调用您的网站,使其无响应,而不关心您作为响应返回的内容(有或没有验证码)。 验证码将帮助您抵御其他类型的攻击,例如机器人和自动订阅。

    如果您使用托管服务提供商,他们通常应该保护您免受 DOS 攻击。

    【讨论】:

    • 是的,我试图避免被用作垃圾邮件重定向器。该网站的“给朋友发电子邮件”功能被用作群发电子邮件……我们收到了数千封被拒绝的电子邮件请求。
    【解决方案3】:

    好吧,如果请求发生得太快,您可以阻止或重定向请求。但是,它必须被编码到您的网络服务器中才能正常工作,除非您想要拥有像 http://www.example.com/gimmeh.py?file=background.png 这样的主文件服务脚本。

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        制作一个没有动作参数的表单。使用 JavaScript 添加参数。

        【讨论】:

        • 这很漂亮!如果用户的浏览器禁用了 JS 会怎样?
        • 我不建议使用基于 javascript 的解决方案,因为这会损害可用性。
        • 那些精明地知道如何关闭 JavaScript 的人通常会使用两种浏览器,一个有一个没有。然后事情在网站上不起作用,他们只是交换浏览器。
        • @HoLyVieR:我建议关闭 javascript...看看有多少网站正常运行。
        最近更新 更多