【问题标题】:Tomcat and flood protection雄猫和防洪
【发布时间】:2012-07-13 11:25:27
【问题描述】:

我们将 Tomcat 7 用于我们的 Web 应用程序。我们提供基于 XML 的 API,以便我们的客户可以以机器对机器的方式与我们的服务器通信(无需 Web 浏览器)。请求由 servlet 处理。

我们需要防止用户连续发送过多的请求。我们提供的一些服务涉及轮询结果,用户可能会在没有任何暂停的情况下循环发出请求,每秒发出几十个请求。

我们如何保护自己不被无用的请求淹没?当来自同一 IP 的请求过多时,是否有一种简单的方法可以在 servlet 入口级别阻止请求?有没有内置的Tomcat来处理这个问题?

【问题讨论】:

    标签: java web-services tomcat web-applications servlets


    【解决方案1】:

    阿帕奇的mod_evasivemod_security 可以在这里满足您的需求。对于需要硬件保护的更复杂的严重攻击,您可以考虑使用 Cloudflare。

    【讨论】:

      【解决方案2】:

      如果你想要一个纯 Java 的解决方案,Spring Security 有很多 Apache httpd 的 mod_security 的特性。

      【讨论】:

        【解决方案3】:

        您可以自己编写代码。

        从 Servlet API 出发,特别是 Filter 接口和 SerlvetRequest 接口的 getRemoteHost() 方法。

        应该很容易编写一个过滤器实现,它存储来自每个主机的请求计数,并在超出限制时采取行动。

        【讨论】:

        【解决方案4】:

        假设您在 tomcat 前使用 apache 反向代理(如果不是,则应该使用),请在 apache 层使用 mod_cband

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-21
          • 1970-01-01
          • 2013-04-19
          • 2014-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多