느 린 DOS 공격 구멍
2399 단어 springbootnginx
HTTP POST: POST 를 사용 할 때 아주 큰 content - length 를 지정 한 다음 에 아주 낮은 속도 로 가방 을 보 냅 니 다. 예 를 들 어 10 - 100 s 에서 바이트 하 나 를 보 내 고 hold 는 이 연결 을 계속 열 립 니 다.이렇게 하면 클 라 이언 트 가 많이 연 결 된 후에 웹 서버 의 모든 사용 가능 한 연결 을 차지 하여 DOS 를 초래 합 니 다.
복구 방법:
웹 서버 의 http 헤드 전송의 최대 허가 시간 을 제한 하고 최대 허가 시간 을 8 초 로 변경 합 니 다.
tomcat
tomcat 프로필 conf / server. xml 에서,
// connectionTimeout 20000 8000 。
springbootspringboot 내장 tomcat 설정:
package com.using.judge.web.client.config;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
public class WebServerConfiguration {
@Bean
public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory()
{
TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
//tomcatFactory.setPort(8082);
tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
return tomcatFactory;
}
}
class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer
{
public void customize(Connector connector)
{
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
//
protocol.setMaxConnections(2000);
//
protocol.setMaxThreads(2000);
protocol.setConnectionTimeout(8000);
}
}
nginx느 린 연결 닫 기
데 이 터 를 기록 하고 있 는 연결 을 닫 을 수 있 습 니 다. 이 는 가능 한 한 연결 을 열 려 고 시도 하 는 것 을 의미 할 수 있 습 니 다. (서버 가 새로운 연결 을 받 아들 이 는 능력 을 낮 출 수 있 습 니 다)Slowloris 는 이런 유형의 공격 의 한 예 이다.해당 clientbody_timeout 명령 은 NGINX 가 클 라 이언 트 기체 기록 사이 에서 기다 리 는 시간 을 제어 합 니 다. 이 clientheader_timeout 명령 은 NGINX 가 클 라 이언 트 제목 을 쓰 는 동안 기다 리 는 시간 을 제어 합 니 다.이 두 명령 의 기본 값 은 60 초 이다.이 예제 에 서 는 NGINX 를 클 라 이언 트 의 기록 이나 헤더 파일 사이 에서 5 초 이상 기다 리 지 않도록 설정 합 니 다.
server {
client_body_timeout 5s;
client_header_timeout 5s;
# ...
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.