>백엔드 개발 >PHP 튜토리얼 >Nginx가 도메인 이름으로 악의적으로 확인되는 것을 방지하는 방법

Nginx가 도메인 이름으로 악의적으로 확인되는 것을 방지하는 방법

WBOY
WBOY원래의
2016-07-29 09:09:421317검색

오늘은 운이 좋게도 서버의 80번 포트가 IP로 접속이 안 되는 걸 발견했습니다. 어제는 괜찮았고, 다른 포트도 정상이었습니다. 방화벽에는 문제가 없었습니다. 그래서 전산실에 물어보니 우리 서버에 등록되지 않은 도메인 이름이 있어서 차이나텔레콤에서 여러 차례 통보를 받고 우리 IP 포트가 차단됐다는 엉뚱한 답변을 했습니다. . . . 폐쇄되었습니다. . . 미친, 핵심은 이 도메인 이름이 내 것이 아니라는 것입니다.

몇 번 뒤척인 끝에 nginx 구성에 허점이 있는 것 같다는 것을 발견했습니다. 이로 인해 서버로 확인된 모든 도메인 이름이 정상적으로 요청됩니다. 빈 페이지인데도 HTTP 상태 코드가 200입니다.

주된 이유는 다음 구성 코드가 부족하기 때문입니다: nginx 버전 1.8.0

<code><span>server</span> {
    listen       <span>80</span>  default_server;
    server_name  _;
    <span>return</span><span>403</span>;
}</code>

구성되지 않은 모든 server_name이 403 오류를 반환하도록 허용

저도 Nginx를 다시 사용했습니다. 이 구성을 추가한 적도 없고, 이런 문제를 겪어본 적도 없고, 다른 서버에서 테스트해 본 적도 있는데, 이 코드가 없어도 파싱 및 요청이 성공적으로 불가능합니다.

보충:

검색한 결과 이런 종류의 문제에는 Nginx가 고유한 444 상태 코드를 사용해야 한다는 것을 알았습니다.

<code><span>server</span> {
    listen       <span>80</span>  default_server;
    server_name  _;
    access_log   off;
    <span>return</span><span>444</span>;
}</code>

서버 측에서 접속 시 브라우저는 자동으로 사용자에게 접속할 수 없다는 메시지를 표시합니다.

Nginx 防止被域名恶意解析的方法

CURL을 통해 캡처한 결과(출력은 HTTP 오류 메시지임)

Nginx 防止被域名恶意解析的方法

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 관련 측면을 포함하여 악성 도메인 이름 확인을 방지하는 Nginx의 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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