Securité

Fermé
sabrine - 14 mars 2014 à 12:10
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 - 17 mars 2014 à 13:01
voila mon problème si quelqu'un pourrais m'aider :
je suis entrain de crée une application web
avec l'option de gestion des acées admin et user
maintenant tt est bien le login et le log out fonctionne très bien mais seulement quand je fais le log out je voudrais que lorsque je clique sur le flèche précédent de mon navigateur web ne me ramené pas a la page que j ai déjas quitter ,
je voudrais par exemple le même truc que Facebook lorsque je me déconnecte et je clique sur le flèche précédent le navigateur reste toujours sur la même page d'accueil de connexion de Facebook ! merci

3 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
14 mars 2014 à 12:50
'lut, je ne sais pas comment Facebook se débrouille pour fair ça (j'ai pas de compte Facebook, donc peut pas tester) mais je présume qu'ils utilisent de l'AJAX et les APIs de manipulation d'historique pour maîtriser entièrement le chargement des pages, ce qui leur permet d'afficher un contenu différent quand tu reviens en arrière.
Si tu arrives à implémenter un tel système, il faut toutefois vérifier que le cookie de session admin est présent à chaque action possible sur la page d'admin: il suffit d'avoir un navigateur trop ancien ou de désactiver les APIs d'historique avec la console JavaScript pour vraiment pouvoir revenir en arrière sur la page admin.
0
mon application web est realiser en *.php fichiers
est ce qu'il y un bout de code en php, javascript ... qui me permet de resoudre ce problème .... Merci
0
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084
14 mars 2014 à 13:52
Salut sabrine,

Ton problème est peut-être lié à la mise en cache de tes pages.

Tu peux insérer des entêtes http avec la fonction Php
header()
qui sont destinés à demander aux navigateurs et proxys de ne pas conserver les pages dans leurs caches.

https://www.php.net/manual/fr/function.header.php

avec un exemple "Cache-Control: no-cache, must-revalidate" et une date d'expiration dans le passé ici :

https://www.php.net/manual/fr/function.header.php#example-4497

Les directives
header()
doivent être utilisées avant l'envoi d'un quelconque contenu de la page par le script Php.

En outre, ton script, lorsque ton utilisateur se délogue, devrait supprimer les variables de session utilisées pour l'authentification avec unset, et tes pages accessibles que sur authentification devraient toujours vérifier, avant d'afficher quoi que ce soit, que les variables existent et qu'elles authentifient correctement l'utilsateur.


Dal
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
14 mars 2014 à 14:08
Bonne initiative aussi, j'y avais pensé mais je l'ai pas dit: bien que ça paraisse être une solution, il ne faut jamais faire confiance au client et à son navigateur: rien ne nous dit qu'il va respecter l'en-tête HTTP
Cache-Control
. C'est donc bon a prendre en plus, mais n'asbtient pas de faire des vérifs' coté serveur.
0
Slt Dal
est ce que vous pouvez me donner un exemple j ai aucune idée comment utiliser
rq : j utilise le header() dans mon code pour faire la redirection des pages !
0
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084
17 mars 2014 à 13:01
@sabrine : j'ai déjà répondu à ta question. Le lien que j'ai donné donne un exemple, ces directives devant être mises avant l'envoi d'un quelconque contenu de la page par le script Php :

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé
?>


Comme indiqué dans mon message également, il faut aussi gérer l'expiration des variables utilisées pour l'authentification, et contrôler leur présence à chaque chargement de page, comme indiqué ci-dessus.

Tu as des exemples là :

https://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes

@gravgun : à mon humble avis, c'est dommage de se priver d'une solution qui ne dépend pas de la présence de Javascript et qui est efficace pour la totalité des navigateurs grand public (et ce depuis des années, la RFC 2616 pour HTTP/1.1 datant de 1999 n'étant pas une nouveauté, alors qu'on ne peut pas en dire autant de l'API d'historique de HTML5).

C'est un autre degré de sécurité : si on peut, on évite que les données soient stockées dans le cache. Si elles n'y sont pas, c'est déjà cela de moins qui pourrait être accessible à une personne mal intentionnée, c'est tout ce que je voulais dire. Et ce n'est pas une sécurité optionnelle, à mon sens, mais nécessaire (même si elle ne prémunis pas contre tous les risques).

"mais n'asbtient pas de faire des vérifs' coté serveur"

Je n'ai jamais prétendu que c'était suffisant, ni que cela permettait de se passer de supprimer les variables de session (relis mon message). Tu veux parler de quelles " vérifs' " ?


Dal
0