Rails (set_no_cache-Methode) Browser-Caching in Safari und Opera kann nicht deaktiviert werden

Nachdem ich Devise für meine Authentifizierung verwendet habe, stellte ich eine Sicherheitslücke fest, in der die Sitzungsvariablen nach dem Abmelden des Benutzers erhalten bleiben. Auf diese Weise kann jeder Benutzer die Zurück-Taste drücken und auf den vorherigen Bildschirm des angemeldeten Benutzers zugreifen.

Ich habe mir diese Beiträge angesehenNum 1 Num 2 Num 3

Ich habe diese Zeilen zu meinem application_controller hinzugefügt

before_filter :set_no_cache
def set_no_cache
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end

In der _form.html.erb habe ich dies oben hinzugefügt

<%if user_signed_in? %>
<%=link_to "Sign Out",  destroy_user_session_path, :method => :delete %><br/>
<%= form_for(@listing) do |f| %>
<% if @listing.errors.any? %>
...........

Dann habe ich die Anwendung auf Firefox, Chrome und Safari getestet.

Firefox und Chrome waren in Ordnung, da ich mich abgemeldet und auf die Schaltfläche "Zurück" geklickt habe und den vorherigen Bildschirm des Benutzers nicht sehen konnte. In Safari und Opera bleibt das unsichere Verhalten jedoch bestehen. Dieser Code hat keine Wirkung.

Irgendwelche Vorschläge, wie man das behebt?

Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage