javascript - 如何防止(按住刷新按钮)DoS 攻击

标签 javascript jsp servlets

我的网站非常动态,它从数据库中收集数据。当我在测试时,我按下刷新键并按住它一段时间,服务器出现故障。 (这是一个简单的 DoS 攻击)。我怎样才能阻止用户继续点击刷新按钮。 谁能告诉我解决方案。像 gmail 一样,转到 gmail 帐户并按 F5 并按住一段时间。 Gmail 将显示此消息

“很抱歉,您的 Gmail 帐户暂时无法使用。对于给您带来的不便,我们深表歉意,并建议您在几分钟后重试。您可以查看 Apps Status Dashboard 以了解服务的当前状态。”

谢谢

最佳答案

为什么不使用计数器方法。增加它直到在一个小间隔内达到阈值,如果达到则阻止访问。

它的 JSP 应该是这样的

 <% 
        int refresh;
        if(session.getAttribute("pageRefresh")==null)
             refresh=0;
        else
            refresh = (Integer)session.getAttribute("pageRefresh") + 1;


       session.setAttribute("pageRefresh", refresh); 

       session.setMaxInactiveInterval(10000);

       if (refresh>100)
       {
           //error message or black list client
       }
%>

关于javascript - 如何防止(按住刷新按钮)DoS 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563438/

相关文章:

java - 从 struts2 应用程序中的 jsp 重定向

java - 通过jsp servlet导入csv文件到mysql

google-app-engine - 如何将过滤器关联到 Google App Engine 的 app.yaml 中的 servlet?

javascript - 为什么 Vue 的共享状态在没有 parseInt 的情况下不会更新?

javascript - TypeError : querySnapshot. forEach 不是函数 - Firebase 云函数

java - 提交包含 <s :select> 的页面时出现异常

servlets - sip servlet 的容器?

tomcat - 使用 hazelcast 缓存部署 tomcat servlet

javascript - 获取组件的内部 html 作为 vuejs 2 中的变量

javascript - 格式化数据以解析为 highcharts 饼图