Ich habe eine Java-Servlet-basierte Web-Anwendung mit Spring Saml und ModSecurity.Übertragung Codierung: Chunked verursacht Probleme für HTML-Antwort (mit ModSecurity)
Bei einer der GET-Anfragen (URL -/saml/login) ist die Antwort eine HTML-Seite, die als text/html zurückgegeben wird (ich kann die HTML-Datei in den Browser-Netzwerkwerkzeugen lesen). Dies ist der Fall, wenn ModSecurity deaktiviert ist.
Wenn ich ModSecurity in der App aktivieren, wird die gleiche Antwort mit dem Header Transfer-encoding: chunked zurückgegeben. Dieses Mal ist die HTML-Antwort aufgrund von Chunking verschlüsselt. ZB <html
wird als 10<60h104t116m109l108
angezeigt. Ich bin mir nicht sicher, ob der Browser dies decodieren soll, aber das ist der Fluss meiner Anwendung. Da die Antwort im verschlüsselten Format auf dem Browser angezeigt wird.
Ich habe versucht, Regeln in ModSecurity auskommentieren, um herauszufinden, was die Antwort ohne Erfolg chunked verursacht. Da ein anderer Entwickler ModSecurity implementiert hat, bin ich mir nicht sicher, wie ich das lösen könnte, indem ich ModSecurity ändere.
Also ich möchte versuchen, die Antwort in Java-Code oder im Browser zu entschlüsseln. Wenn die HTML-Datei normal gerendert wird, beginnen die nachfolgenden Anforderungen zu arbeiten.
EDIT 1:
ModsecurityFilter Konfiguration in der web.xml:
<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>
Noch nie davon gehört. Welchen Webserver benutzen Sie mit ModSecurity (Apache? Nginx? IIS?), welche Plattform (Linux? Windows?) und welche Version von ModSecurity? –
Ich benutze einen Apache Tomcat V8 Webserver und ein Ubuntu OS mit ModSecurity Version 2.7. –
ModSecurity wird auf Tomcat nicht unterstützt, also betreiben Sie Apache davor? Können Sie versuchen, "SecDisableBackendCompression On" einzustellen und sehen, ob das hilft? –