私はspring-samlとModsecurityを使用したJava-ServletベースのWebアプリケーションを持っています。転送エンコーディング:HTMLレスポンスに問題が発生しました(Modsecurityを使用)
GETリクエスト(URL -/saml/login)の1つとして、Content-Lengthヘッダーと共にtext/html(ブラウザネットワークツールでhtmlファイルを読むことができます)として返されるHTMLページです。これは、Modsecurityが無効になっているときです。
私がアプリケーションでModSecurityを有効にすると、同じ応答がヘッダTransfer-encoding:chunkedで返されます。今回は、チャンクによってhtmlレスポンスがエンコードされます。たとえば<html
は10<60h104t116m109l108
と表示されます。私はブラウザがこれをデコードしているはずですが、これが私のアプリケーションの流れを壊しているのかどうかはわかりません。レスポンスはブラウザにエンコードされた形式で表示されます。
私はModSecurityのルールをコメントアウトして、どのレスポンスが成功してチャンクされているのかを調べてみました。別の開発者がModSecurityを実装して以来、ModSecurityをどのように変更すればこの問題を解決できるのかよく分かりません。
私はJavaコードまたはブラウザで応答をデコードしようとします。 Htmlファイルが正常にレンダリングされると、後続の要求が機能し始めます。
EDIT 1:web.xmlの
ModsecurityFilter構成:
<filter>
<filter-name>ModSecurityFilter</filter-name>
<filter-class>org.modsecurity.ModSecurityFilter</filter-class>
<init-param>
<param-name>conf</param-name>
<param-value>/opt/ModSecurityFilter/modsecurity.conf</param-value>
</init-param>
<init-param>
<param-name>libxml2</param-name>
<param-value>/usr/lib/x86_64-linux-gnu/libxml2.so.2</param-value>
</init-param>
<init-param>
<param-name>libpcre</param-name>
<param-value>/lib/x86_64-linux-gnu/libpcre.so.3</param-value>
</init-param>
<init-param>
<param-name>libaprutil-1</param-name>
<param-value>/usr/lib/x86_64-linux-gnu/libaprutil-1.so.0</param-value>
</init-param>
<init-param>
<param-name>libapr-1</param-name>
<param-value>/usr/lib/x86_64-linux-gnu/libapr-1.so.0</param-value>
</init-param>
<init-param>
<param-name>libModSecurityJNI</param-name>
<param-value>/opt/ModSecurityFilter/java/.libs/libModSecurityJNI.so</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ModSecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
これまで聞いたことがありません。あなたはModSecurity(Apache?Nginx?IIS?)、どのプラットフォーム(Linux?Windows?)、そしてどのバージョンのModSecurity? –
Apache Tomcat v8 WebサーバーとModSecurityバージョン2.7のUbuntu OSを使用しています。 –
ModSecurityはTomcatではサポートされていませんので、Apacheをその前で実行していますか? "SecDisableBackendCompression On"を設定して、それが役立つかどうか確認できますか? –