すべてのドメインで特定の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モジュールを見つけることもできます。それぞれの構成は異なりますが、インクルードを使用する代わりに、「1つの場所」でこれを行うことができると思います。
可能であれば、独自のNGINXモジュールを作成できます。しかし、少し過剰かもしれませんが...でも、次のアイデアがあります。
http {
# applied to all websites
bad_files xmlrpc.php .env;
bad_files_status 444;
}
Cに精通している人なら、これらのモジュールを比較的簡単に完了できます。
道に従いinclude
ます。include
特に、構成ツール(ansible
テンプレートベースのNGINX構成など)を使用している場合、各サーバーブロックの冗長性は問題になりません。