2012-07-01 16 views
27

Ho progettato nella mia applicazione web. Ho un problema con il seguente flusso di lavoro:Dopo il logout, se premo il pulsante posso vedere l'ultima pagina che richiede il login

Per accedere al pannello di amministrazione devo effettuare il login. Successivamente, navigo normalmente nel pannello di amministrazione della mia app Web. Quando faccio clic su Esci, mi reindirizza alla pagina radice, che è il comportamento che voglio finora.

La cosa strana inizia quando in questa pagina e dopo le azioni di cui sopra faccio clic sul pulsante indietro del browser che mi mostra l'ultima pagina memorizzata nella cache. La mia sessione è stata distrutta perché se clicco su di essa, mi reindirizza e menziona il login per accedere alla pagina, ma non voglio vedere l'ultima pagina di cronologia del browser.

Come è possibile e cosa posso fare per impedirlo? Ha a che fare con il caching del browser giusto? L'unico modo per risolverlo è rimuovere la cache dalle pagine di accesso per evitare questo comportamento? Come lo posso fare?

+0

Puoi passare a SSL? –

+1

È possibile controllare questi due collegamenti: [1] [1] e [2] [2]. [1]: http://stackoverflow.com/questions/4120289/how-to-clear-browser-cache-after-user-logout-to-prevent-access-to-private-info- v [2]: http://stackoverflow.com/questions/711418/how-to-prevent-browser-page-caching-in-rails – tiktak

risposta

53

Si desidera impostare le intestazioni della tua pagina per evitare la memorizzazione nella cache. Si può fare in questo modo:

before_filter :set_cache_buster 

    def set_cache_buster 
    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 

merito va alla prima risposta di this thread.

+0

Ciao, nel controller strega? – Zakos

+0

In ApplicationController – inquisitive

+4

Cosa succede se voglio solo no-cache dopo il logout? Penso che rimuoverà la cache dopo ogni richiesta. Che cos'è un patrimonio, sarà rimosso? – fabricioflores

5

È possibile tentare di dire al browser di non memorizzare nella cache roba ma questo è quello che è - un tentativo.

Se hanno visualizzato la pagina in precedenza, c'è poco che si possa fare per far rispettare la possibilità di non vedere più la pagina - è un po 'fuori controllo in quel punto.

Ad esempio, è possibile scaricare l'HTML della pagina (che è ciò che stanno facendo quando visualizzano la pagina) e inoltre non si può impedire loro di dire, uno screenshot.

Quel detto caching del browser funzionerà in alcuni (più?) Casi, fare riferimento alla risposta di Michael Frederick.

Problemi correlati