>  기사  >  운영 및 유지보수  >  요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해

요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해

PHPz
PHPz원래의
2023-08-07 10:21:26998검색

요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해

Nginx는 고성능 오픈 소스 웹 서버로 정적 웹 사이트, 역방향 프록시 및 로드 밸런싱을 배포하는 데 사용할 수 있을 뿐만 아니라 일련의 보안 보호 전략을 통해 악의적인 요청으로부터 서버를 보호합니다. 이 기사에서는 요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 중점을 두고 관련 코드 예제를 제공합니다.

  1. 요청 속도 제한

악성 요청은 종종 여러 가지 고주파 방식으로 시작되어 서버에 큰 부담을 주며, 서버 과부하를 방지하기 위해 Nginx 모듈을 사용하여 요청 속도를 제한할 수 있습니다. .

Nginx 구성 파일에서 limit_req_zone 지시어를 사용하여 요청 비율 제한이 있는 공유 메모리 영역을 생성할 수 있습니다. 예: limit_req_zone指令来创建一个请求速率限制的共享内存区域,例如:

http {
    limit_req_zone $binary_remote_addr zone=limit:10m rate=1r/s;
}

以上配置创建了一个10MB大小的内存区域,限制每秒钟从同一个客户端IP地址发起的请求数不超过1个。接下来,我们可以在具体的请求处理块中使用limit_req指令来应用这个限制,例如:

server {
    location /api/ {
        limit_req zone=limit burst=5;
        proxy_pass http://backend;
    }
}

以上配置表示在/api/路径下限制请求速率,并设置了一个突发限制值为5。这样一来,如果有大量的请求超过了限制速率,Nginx将返回503错误给客户端,并抛弃这些请求。

  1. 防止恶意请求

除了限制请求速率,我们还可以通过其他策略来防止恶意请求,例如:

  • IP白名单/黑名单:可以通过allowdeny指令来设置IP的访问控制,只允许白名单中的IP访问,或者拦截黑名单中的IP。例如:
location /admin/ {
    allow 192.168.1.0/24;
    deny all;
}

以上配置表示只允许IP在192.168.1.0/24网段内的访问/admin/路径。

  • URI黑名单:可以通过if指令和正则表达式来拦截恶意请求的URI。例如:
location / {
    if ($uri ~* "/wp-admin" ) {
        return 403;
    }
}

以上配置表示如果请求的URI中包含/wp-admin,则返回403错误。

  • Referer检查:可以通过检查请求头中的Referer字段来判断请求的来源是否合法。例如:
server {
    location / {
        if ($http_referer !~* "^https?://example.com") {
            return 403;
        }
    }
}

以上配置表示如果Referer字段不是以http://example.comhttps://example.comrrreee

위 구성은 초당 제한된 10MB 메모리 영역을 생성합니다. 동일한 클라이언트 IP 주소에서 시작된 요청 수는 1을 초과할 수 없습니다. 다음으로 특정 요청 처리 블록에서 limit_req 지시어를 사용하여 이 제한을 적용할 수 있습니다. 예:

rrreee

위 구성은 요청이 /api/에서 제한됨을 나타냅니다. code> path rate를 선택하고 버스트 제한 값을 5로 설정합니다. 이러한 방식으로 많은 수의 요청이 제한 속도를 초과하면 Nginx는 클라이언트에 503 오류를 반환하고 이러한 요청을 포기합니다. <p></p> <ol start="2">악성 요청 방지<p></p>🎜요청 비율을 제한하는 것 외에도 다음과 같은 다른 전략을 통해 악의적인 요청을 방지할 수도 있습니다. 🎜</ol> <ul>🎜IP 화이트리스트/블랙리스트: 다음을 통과할 수 있습니다. <code>allowdeny 지시문은 IP 액세스 제어를 설정하는 데 사용되며, 화이트리스트에서는 IP 액세스만 허용하거나 블랙리스트에서는 IP를 차단합니다. 예: 🎜rrreee🎜위 구성은 192.168.1.0/24 네트워크 세그먼트의 IP만 /admin/ 경로에 액세스할 수 있음을 의미합니다. 🎜
    🎜URI 블랙리스트: if 지시문과 정규식을 통해 악의적으로 요청된 URI를 차단할 수 있습니다. 예: 🎜
rrreee🎜위 구성은 요청된 URI에 /wp-admin이 포함되어 있으면 403 오류가 반환된다는 의미입니다. 🎜
    🎜Referer 확인: 요청 헤더의 Referer 필드를 확인하여 요청 소스가 합법적인지 확인할 수 있습니다. 예: 🎜
rrreee🎜위 구성은 추천자 필드가 http://example.com 또는 https://example.com으로 시작하지 않는 경우를 의미합니다. code>인 경우 403 오류가 반환됩니다. 🎜🎜요약하자면, Nginx는 요청 비율을 제한하고 악의적인 요청을 방지하기 위한 풍부한 보안 보호 전략을 제공합니다. Nginx를 올바르게 구성하면 악의적인 요청으로부터 서버를 보호하고 서버의 안정성과 보안을 향상시킬 수 있습니다. 🎜🎜위 내용은 요청률을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해에 대한 소개입니다. 🎜🎜 (참고: 위 내용은 단지 코드 예시일 뿐이며 프로덕션 환경에 완전히 적용되지 않을 수 있습니다. 실제 상황과 Nginx 공식 문서에 따라 구성하시기 바랍니다.) 🎜

위 내용은 요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.