2010-03-24 4 views
7

Je trouve que lorsque vous appuyez sur le bouton de retour, il obtient la page précédente du cache du navigateur, même si j'envoie les en-têtes suivants:Puis-je désactiver le cache de bouton arrière FF3?

Test1.aspx

Server    ASP.NET Development Server/9.0.0.0 
Date   Wed, 24 Mar 2010 17:49:40 GMT 
X-AspNet-Version 2.0.50727 
Location   Test2.aspx 
Cache-Control no-cache, no-store 
Pragma   no-cache 
Expires   -1 
Content-Type text/html; charset=utf-8 
Content-Length 189 
Connection   Close 

Répondre

4

expires devrait pour moi être une date + horodatage et de contrôle du cache peut aider aussi bien

Expires: Wed, 11 Jan 1984 05:00:00 GMT 
Cache-Control: no-cache, must-revalidate, max-age=0 
+0

En fait, la réponse était aussi simple. Mais je veux en connaître d'autres. Les navigateurs ne mettent pas en cache les pages, ils mettent en cache les requêtes. Donc, si vous avez une page Test.aspx avec un lien vers lui-même. Et l'utilisateur ouvre d'abord la page, puis clique sur le lien (ici no-cache est ajouté) puis appuie sur le bouton back la page sera récupérée du cache car la première fois elle a été téléchargée sans la directive no-cache –

+1

, qui sont en général des pages, non? et si je ne me trompe pas, "no-cache" sera déjà dans l'entête de réponse http même lors de la première requête. – futtta

+1

Devrait également inclure 'Cache-Control: no-store' pour google chrome. – ajbeaven

1

Cache-contrôle et ces choses ne dire navigateur de ne pas enregistrer en cache les trucs téléchargés (js, css, images, etc.). Cela ne concerne pas l'histoire des pages visitées.

Vous ne devriez pas essayer de modifier les données du navigateur. Au lieu de cela, vous gérer les événements et arrêter ceux que vous ne voulez pas se produire sur votre site.

+4

Que faire si j'ai des données sensibles. Dites un kiosque de vote public. L'utilisateur choisit le candidat à la présidence, puis clique sur Envoyer. Maintenant, le prochain électeur se rend au kiosque, appuie sur le bouton de retour et voit ce que l'utilisateur précédent a sélectionné, parce que le navigateur n'a même pas essayé d'obtenir la dernière version du serveur et a affiché son cache. Que dois-je faire alors? –

+2

Cela signifie que votre application se comporte mal. Les transactions, les sessions et ce genre de choses sont destinés à gérer les restrictions d'accès aux données sensibles. Quand les webapps disent "souvenez-vous de fermer votre session", ils le pensent! En outre, si votre application place des données confidentielles dans le cache du navigateur, cela signifie que vous ouvrez une nouvelle faille de sécurité. Simple et simple (sauf si vous le chiffrez!). Vous ne pouvez pas compter sur des modifications non autorisées des données du navigateur (par définition, c'est du côté de l'utilisateur) afin d'assurer la sécurité. Trop comme DRM, mettant toute la sécurité du même côté. – Alfabravo

1

"s "must-revalidata" & "max-age" le paramètre suivant dans l'en-tête travaillé?:

Pragma: no-cache

cache-Control: no-cache, pas de magasin

Expire: 0

Questions connexes