特定のページに Modsec ルールを使用するにはどうすればいいですか?

特定のページに Modsec ルールを使用するにはどうすればいいですか?

Apache Mod_security を使用して、特定のページ (wp-comments-post.php) のプロキシ (x-forwarded) IP をブロックしたいと思います。

現在の mod_security ルール:

SecRule REQUEST_HEADERS_NAMES "^x-forwarded-for" "log,deny,id:48,status:403,t:lowercase,msg:'Don't use Proxy'"

答え1

次のようなものが使えるはずです

<LocationMatch "wp-comments-post.php" >
    SecRule &REQUEST_HEADERS:X-Forwarded-For "@gt 0" "log,deny,id:48,status:403,msg:'Don't use Proxy'"
</LocationMatch>

これをテストできるマシンが手元にありませんが、X-Forward-For リクエスト ヘッダーが 0 より大きい場合は、関連する場所へのアクセスを拒否するはずです。多くの企業がプロキシを使用しているため、誤検出を減らすためにこれを "@gt 1" にする必要があるかもしれません。Apache位置そしてロケーションマッチドキュメンテーション。

答え2

modsec ルールを location ディレクティブ内に囲めば、これが実行できると思います。

<Location /koko/lala/wp-comments-post.php >
SecRule .... 
</Location>

関連情報