1880 Stimmen

Wie können wir die Zwischenspeicherung von Webseiten in allen Browsern kontrollieren?

Unsere Untersuchungen haben gezeigt, dass nicht alle Browser die HTTP-Cache-Direktiven in einheitlicher Weise beachten.

Aus Sicherheitsgründen wollen wir nicht, dass bestimmte Seiten in unserer Anwendung zwischengespeichert werden, jemals, durch den Webbrowser. Dies muss mindestens mit den folgenden Browsern funktionieren:

  • Internet Explorer 6+
  • Firefox 1.5+
  • Safari 3+
  • Opera 9+
  • Chrom

Unsere Anforderung kam von einem Sicherheitstest. Nach dem Abmelden von unserer Website konnte man die Schaltfläche "Zurück" drücken und zwischengespeicherte Seiten anzeigen.

8voto

Dustman Punkte 4797

Diese Richtlinien vermindern kein Sicherheitsrisiko. Sie sollen UAs dazu zwingen, flüchtige Informationen zu aktualisieren, und nicht verhindern, dass UAs Informationen zurückhalten. Siehe diese ähnliche Frage . Zumindest gibt es keine Garantie, dass Router, Proxys usw. die Caching-Richtlinien nicht ebenfalls ignorieren.

Positiv zu vermerken ist, dass Sie den meisten Unternehmen in puncto Sicherheit meilenweit voraus sind, wenn es um den physischen Zugang zu Computern, die Installation von Software und dergleichen geht. Wenn es sich bei den Nutzern dieser Informationen um Mitglieder der Öffentlichkeit handelt, können Sie nur dafür sorgen, dass sie verstehen, dass die Informationen, sobald sie auf ihrem Rechner sind, dieser Rechner ihre Verantwortung, nicht Ihre.

7voto

Albert Punkte 71

Wenn Sie Probleme beim Herunterladen mit IE6-IE8 über SSL und cache:no-cache-Header (und ähnlichen Werten) mit MS Office-Dateien haben, können Sie cache:private,no-store-Header und Rückgabedatei auf POST-Anfrage verwenden. Das funktioniert.

7voto

Anders Sandvig Punkte 20204

Die Einstellung des geänderten http-Headers auf ein Datum im Jahr 1995 ist in der Regel die Lösung.

Hier ist ein Beispiel:

Expires: Wed, 15 Nov 1995 04:58:08 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Cache-Control: no-cache, must-revalidate

7voto

Chris Dail Punkte 24971

Der RFC für HTTP 1.1 sagt, dass die richtige Methode darin besteht, einen HTTP-Header für hinzuzufügen:

Cache-Kontrolle: no-cache

Ältere Browser ignorieren dies möglicherweise, wenn sie nicht mit HTTP 1.1 kompatibel sind. In diesen Fällen können Sie den Header ausprobieren:

Pragma: no-cache

Dies sollte auch bei HTTP 1.1-Browsern funktionieren.

6voto

Grey Panther Punkte 12478

El PHP-Dokumentation für die Header-Funktion hat ein ziemlich vollständiges Beispiel (von einem Dritten beigesteuert):

    header('Pragma: public');
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");                  // Date in the past   
    header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');     // HTTP/1.1
    header('Cache-Control: pre-check=0, post-check=0, max-age=0', false);    // HTTP/1.1
    header ("Pragma: no-cache");
    header("Expires: 0", false);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X