Después de usar Devise para mi autenticación, descubrí que había un agujero de seguridad en que, después de que el usuario finaliza la sesión, las variables de sesión se conservan. Esto le permite a cualquiera presionar el botón Atrás y acceder a la pantalla anterior del usuario conectado.Rails (método set_no_cache) No se puede deshabilitar el almacenamiento en caché del navegador en Safari y Opera
Miré a estos puestos Num 1 Num 2 Num 3
que he ido añadiendo estas líneas a mi application_controller
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
En el _form.html.erb añadí esto en la parte superior
<%if user_signed_in? %>
<%=link_to "Sign Out", destroy_user_session_path, :method => :delete %><br/>
<%= form_for(@listing) do |f| %>
<% if @listing.errors.any? %>
...........
Luego probé la a aplicación en Firefox, Chrome y Safari.
Firefox y Chrome estuvieron bien en que me desconecté y presioné el botón Atrás y no pude ver la pantalla anterior del usuario, sin embargo, en Safari y Opera, el comportamiento inseguro persiste. Este código no tiene un efecto.
¿Alguna sugerencia sobre cómo solucionar esto?
Gracias
Este es un duplicado de http://stackoverflow.com/questions/2866826/how-do-i-stop-opera-from-caching-a-page – hallvors
hmm. Miró este enlace. No, donde habla de Safari, solo menciona a Opera. Y he probado todas las soluciones que enumeraron allí como puede ver arriba. – banditKing
Ops, tienes razón sobre Safari. Solo la parte "Ópera" de la pregunta es un duplicado real, ya que la respuesta allí explica por qué Opera se comporta así y que la única solución real es usar https y debe volver a validar. – hallvors