我试图弄清楚,以下代码如何容易受到DDOS攻击?为了避免ddos攻击,我该怎么做。
public class Helper {
public void handle(Socket socket) {
}
}
final class RequestHandler {
private final Helper helper = new Helper();
private final ServerSocket server;
private RequestHandler(int port) throws IOException {
server = new ServerSocket(port);
}
public static RequestHandler newInstance() throws IOException {
return new RequestHandler(0);
}
public void handleRequest() {
new Thread(new Runnable() {
public void run() {
try {
helper.handle(server.accept());
} catch (IOException e) {
}
}
}).start();
}
}
您可以使用反应性和非阻塞服务器模型,例如使用事件循环避免为每个请求创建线程。这不会阻止DDoS,但至少会增加服务器的吞吐量,因此需要更大的攻击。