如何检测Servlet中的ping?

时间:2015-04-24 16:15:31

标签: java servlets denial-of-service

我们正在尝试将拒绝服务攻击作为Internet Security项目执行,因此我们设置了客户端和服务器。 客户端执行以下

private void pingAttack() throws Exception {
    String url = "127.0.0.1";
    InetAddress inet = InetAddress.getByName(url);
    for(int counter = 0; counter < 1000000000; counter++) {
        System.out.println(inet.isReachable(5000) ? "available" : "NA");
    }
}

在服务器中,我需要对此进行测量,因此我需要在特定数量的ping之后检测发送的ping并断开与用户的连接,但我不知道如何执行此操作。我们应该在doGet()方法中在服务器端写什么?

2 个答案:

答案 0 :(得分:1)

isReachable不会导致HTTP请求,因此永远不会调用doGet,doXXX方法。

来自InetAddress的Javadocs

  

测试该地址是否可达。最好的努力是由   实现尝试到达主机,但防火墙和服务器   配置可能会阻止导致无法访问状态的请求   虽然某些特定端口可以访问。典型的实现   如果可以获得特权,将使用ICMP ECHO REQUEST,   否则它将尝试在端口7(Echo)上建立TCP连接   目的地主机。

但是,如果您正在尝试阻止HTTP请求的DoS,则可以将容器(Tomcat,Jetty等)配置为仅接受最大数量的并发请求,之后将忽略其他请求。

答案 1 :(得分:0)

无。如果他们欺骗你执行doGet(),你就已经加载了你的服务器。您应该查看防火墙配置。