tomcat Sicherheitseinschränkungs-Impact-Cache

8

Ich habe ein Problem beim Zwischenspeichern meiner Anwendung.

wenn dieser Code zu web.xml von tomcat hinzugefügt wird:

%Vor%

Ich bekomme diese Antwort:

%Vor%

Ohne diesen Code ist alles in Ordnung:

%Vor%

Kann jemand sagen, was das Problem verursacht? und warum dieser Code die cache-controle in private meiner Anwendung ändert. vielen dank

%Vor%     
Espadax4 17.02.2014, 12:47
quelle

2 Antworten

4

Laut Oracle Java EE 6-Lernprogramm , geben Sie a user-data-constraint von "VERTRAULICH" ist zu verwenden

  

wenn die Anwendung erfordert, dass Daten übertragen werden, um zu verhindern, dass andere Entitäten den Inhalt der Übertragung beobachten.

Bei HTTP-Antworten würde dies bedeuten, dass keine Proxys / Caches auf dem Weg vom Server zurück zum Client in der Lage wären, diese Antwort zwischenzuspeichern und jedem anderen anfordernden Client zur Verfügung zu stellen. So die Verwendung von:

%Vor%

Obwohl Sie versucht sein könnten, "INTEGRAL" anstelle von "CONFIDENTIAL" zu verwenden, weist dasselbe Tutorial darauf hin, dass viele Java EE-Server diese beiden Werte identisch behandeln.

Wenn Ihre Anwendung das Zwischenspeichern zulassen muss, vermute ich, dass Sie das <user-data-constraint> -Element aus Ihrer web.xml -Datei entfernen müssten.

Hoffe, das hilft!

    
Castaglia 16.03.2016 06:50
quelle
1

Ich frage mich also, wie ich Tomcat-Anwendungen so konfigurieren soll, dass sie automatische SSL-Umleitung haben, aber das Caching von statischen Ressourcen erhalten bleibt? Ich meine, dass die Anwendung vollständig über SSL läuft, zusammen mit statischen Ressourcen, die zwischengespeichert werden sollten.

Es scheint, dass ich nach dem Setzen von <url-pattern>/*</url-pattern> oder sogar <url-pattern>/</url-pattern> kein anderes URL-Muster mit transport-garantie NONE deklarieren kann. Alles, was mit meiner Root-URL begann, hat jetzt Cache-Control: private auf jeden Fall.

Aber ich habe die Lösung gefunden, zumindest in Tomcat 7.0.55. Diese Header werden glücklicherweise festgelegt, bevor die gesamte Anfrage verarbeitet wird. Sie können sie also beim allerersten Anwendungsfilter abfangen. Wenn Sie die Antwort hier zurücksetzen, können Sie eigene Header einrichten und vorhandene überschreiben:

%Vor%

Dann können Sie zum Beispiel tomcat ExpiresFilter als zweiter Filter, und hier können Sie Ihre eigene Caching-Konfiguration konfigurieren.

    
Łukasz Frankowski 06.07.2016 13:23
quelle