我的网站非常动态,它从数据库中收集数据。当我在测试时,我按下了刷新键并按住了一段时间,服务器宕机了。(这是一个简单的 DoS 攻击)。如何阻止用户继续点击刷新按钮。谁能告诉我解决方案。像 gmail 一样,转到 gmail 帐户并F5按住它一段时间。Gmail 将显示此消息
“很抱歉,您的 Gmail 帐户暂时不可用。对于给您带来的不便,我们深表歉意,并建议您过几分钟再试一次。您可以查看应用程序状态仪表板了解服务的当前状态。”
谢谢
我的网站非常动态,它从数据库中收集数据。当我在测试时,我按下了刷新键并按住了一段时间,服务器宕机了。(这是一个简单的 DoS 攻击)。如何阻止用户继续点击刷新按钮。谁能告诉我解决方案。像 gmail 一样,转到 gmail 帐户并F5按住它一段时间。Gmail 将显示此消息
“很抱歉,您的 Gmail 帐户暂时不可用。对于给您带来的不便,我们深表歉意,并建议您过几分钟再试一次。您可以查看应用程序状态仪表板了解服务的当前状态。”
谢谢
你必须使用 mod_evasive 或 mod_qos 或 mod_security
我更喜欢 mod_security modsecurity_crs_11_dos_protection
为什么不使用计数器方法。增加它直到在一个小间隔内达到阈值,如果是,则阻止访问。
它的 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
}
%>