모든 도메인에서 특정 PHP 파일에 대한 액세스를 차단하고 싶습니다. 나는 내가 사용할 수 있다는 것을 안다
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
return 444;
}
예를 들어 서버 블록에 있지만 사전 필터처럼 모든 도메인에 대해 설정하고 싶습니다.
또 다른 가능한 아이디어는 각 도메인 구성에 포함을 추가하고 동일한 파일을 가리켜 이 규칙을 로드하는 것입니다. 하지만 nginx에서는 가능하고 Apache에서도 가능하다고 생각합니다.
답변1
간단한 방법은 include
실제로 사용하는 것입니다. 이는 NGINX에 추가할 필요가 없습니다.
그렇지 않으면 잘 알려진 3개의 모듈(ngx_waf, Modsecurity 및 naxsi)이 있는 WAF 모듈을 찾을 수도 있습니다. 각각에 대한 구성은 다르지만 포함을 사용하는 대신 "한 곳"에서 이 작업을 수행할 수 있을 것이라고 생각합니다.
가능하다면 자신만의 NGINX 모듈을 생성할 수 있습니다. 하지만 약간 과잉일 수도 있지만... 그래도 다음과 같은 아이디어가 있습니다.
http {
# applied to all websites
bad_files xmlrpc.php .env;
bad_files_status 444;
}
C에 익숙한 사람이라면 이러한 모듈을 비교적 쉽게 완료할 수 있습니다.
나는 include
길을 따르겠습니다. include
특히 구성 도구(예: ansible
템플릿 기반 NGINX 구성) 를 사용하는 경우 각 서버 블록의 중복 은 문제가 되지 않습니다.