2016-07-27 10 views
1

ウェブサイト全体でmod_securityがONに設定されている場合、特定のページをdetect_onlyに設定する方法はありますか?特定のページのmod_securityをdetectOnlyに設定しますか?

アプリケーションがWebサイトの設定に使用され、CSSまたはjsの使用が非常に一般的ですが、modsecurityがXSSルール例外をスローする可能性が非常に高いケースです。私はそれらの例外を検出したいが、それらのページでのみブロックしない。しかし、他のすべてのページでは、ルールの例外をブロックする必要があります。

詳細:実際には、アプリケーションは別のWindowsサーバー上で動作するIISアプリケーションであり、mod_securityはLinuxサーバー上でApacheで動作します。 haproxyは着信要求をApacheに指示し、apacheはmodsecurityによって要求を受け取ります。通過すると逆プロキシしてhaproxyに戻し、IISに渡します。

== incoming request ==> haproxy ==> apache 
             v 
            mod_security 
             v 
     IIS machine <== haproxy <== mod_proxy 

(はい、haproxyを使用するための十分な理由があります。私たちは、HTTPS証明書の数百を持っている、とSNI HTTPSに基づいて、我々は彼らの完全なフォルダでhaproxy指し示すことができ、それが正しいものを選ぶだろうまだそれを行うことができるものは何も見つかりませんでした。) Apacheのサイドに.htaccessファイルが意味を持つディレクトリはありません。少なくとも私の小さな心には意味があります。

パス処理されるべきDetectionOnlyがホストadmin.mysite.comとパスにマッチするように、このような^/site/[a-zA-Z0-9-]+/Settings$

答えて

2

何かが(未テスト)動作するはずです:

SecRule REQUEST_HEADERS:Host "@streq admin.mysite.com" "phase:1,id:1234,chain" 
    SecRule REQUEST_URI "^/site/[a-zA-Z0-9-]+/Settings$" "ctl:ruleEngine=DetectionOnly" 

ただ、他の人のいずれかの前にルールを追加して作りますidが一意であることを確認してください(例として1234を使用しました)。

ctlの変更はこの要求に対してのみ行われるため、ルールエンジンは次の要求に対してリセットされます。

+0

ありがとうございました!うまくいきます。 –

関連する問題