Empecher d'accéder à un lien sans SESSION
Résolu/Fermé
LaChaux78
LaChaux78
- Messages postés
- 410
- Date d'inscription
- lundi 25 juillet 2016
- Statut
- Membre
- Dernière intervention
- 24 novembre 2021
LaChaux78
- Messages postés
- 410
- Date d'inscription
- lundi 25 juillet 2016
- Statut
- Membre
- Dernière intervention
- 24 novembre 2021
A voir également:
- Empecher d'accéder à un lien sans SESSION
- Empecher d'accéder à un lien sans SESSION ✓ - Forum - PHP
- Ouvrir cmd sans session ✓ - Forum - Windows 7
- Des contraintes de sécurité empêche d'accéder à la page demandée - Conseils pratiques - Web
- Lien sans soulignement css - Conseils pratiques - HTML
- Comment accéder à m6 replay sans s'inscrire ? - Guide
4 réponses
yg_be
11 déc. 2016 à 18:01
- Messages postés
- 19316
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 25 mai 2022
11 déc. 2016 à 18:01
Ton observation est 100% correcte, tu as bien perçu le danger, mais ta conclusion n'est pas correcte.
Tu ne peux pas empêcher quelqu'un de t'envoyer n'importe quel url.
Par contre, tu peux totalement contrôler ce que tu renvoies comme réponse à chaque url.
Je te conseille, dans le PHP de toutes tes pages "confidentielles", de tester si il y a une session ouverte, et, si ce n'est pas le cas, de renvoyer une réponse de ton choix : une page d'erreur, ta page principale, une invitation à entrer en session, ...
C'est de cette façon que tu contrôles que seuls ceux qui ont ouvert leurs SESSION ont accès à tes information. Ce n'est pas l’accès aux liens que tu dois contrôler, c'est l’accès au contenu. Et c'est précisément le concept de sessions qui t'aide à faire cela, parce que tu retrouves les mêmes variables de sessions chaque fois que ton PHP est exécuté par la même session.
Ceci t'aide-t-il?
Tu ne peux pas empêcher quelqu'un de t'envoyer n'importe quel url.
Par contre, tu peux totalement contrôler ce que tu renvoies comme réponse à chaque url.
Je te conseille, dans le PHP de toutes tes pages "confidentielles", de tester si il y a une session ouverte, et, si ce n'est pas le cas, de renvoyer une réponse de ton choix : une page d'erreur, ta page principale, une invitation à entrer en session, ...
C'est de cette façon que tu contrôles que seuls ceux qui ont ouvert leurs SESSION ont accès à tes information. Ce n'est pas l’accès aux liens que tu dois contrôler, c'est l’accès au contenu. Et c'est précisément le concept de sessions qui t'aide à faire cela, parce que tu retrouves les mêmes variables de sessions chaque fois que ton PHP est exécuté par la même session.
Ceci t'aide-t-il?
LaChaux78
11 déc. 2016 à 18:40
- Messages postés
- 410
- Date d'inscription
- lundi 25 juillet 2016
- Statut
- Membre
- Dernière intervention
- 24 novembre 2021
11 déc. 2016 à 18:40
Bonjour
Merci pour ta réponse
Alors en fait si j'ai bien compris car ce n'est pas certain c'est de mettre par exemple une condition sur le contenu qui doit être lu uniquement si une SESSION est ouverte.
Je pourrai faire du style ça?
Merci
Merci pour ta réponse
Alors en fait si j'ai bien compris car ce n'est pas certain c'est de mettre par exemple une condition sur le contenu qui doit être lu uniquement si une SESSION est ouverte.
Je pourrai faire du style ça?
Merci
<?php if (isset($_SESSION['idpers']) && $_SESSION['idpers'] != NULL) { ?> <div id="ProfilMenu" style="width:800px"> <ul> <li><b>MENU :</b></li> <li> - <a href="./mod_profil.php" rel="nofollow noopener noreferrer" target="_blank">Modifier mon profil</a></li> <li> - <a href="./mod_passwd.php" rel="nofollow noopener noreferrer" target="_blank">Modifier mon Mot de passe</a></li> <li> - <a href="./pp_anciennete.php" rel="nofollow noopener noreferrer" target="_blank">Ancienneté</a></li> <li> - <a href="./pp_responsables.php" rel="nofollow noopener noreferrer" target="_blank">Responsables</a></li> </ul> </div> <?php }else { redirection page d'accueil } ?>
yg_be
11 déc. 2016 à 18:52
- Messages postés
- 19316
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 25 mai 2022
11 déc. 2016 à 18:52
Ce que tu fais, c'est bien, mais tu dois suivre le même principe dans tes pages mod_profil.php, mod_passwd.php, pp_anciennete.php, pp_responsables.php, bref, toutes tes pages confidentielles : renvoyer à la page d'accueil si pas en session.
Il faut aussi, dans le code PHP de toutes les pages où tu utilises $_SESSION, faire, au début, session_start();
Il faut aussi, dans le code PHP de toutes les pages où tu utilises $_SESSION, faire, au début, session_start();
LaChaux78
11 déc. 2016 à 18:53
- Messages postés
- 410
- Date d'inscription
- lundi 25 juillet 2016
- Statut
- Membre
- Dernière intervention
- 24 novembre 2021
11 déc. 2016 à 18:53
C'est encore moi je crois que j'ai compris je te redis
merci
merci
LaChaux78
11 déc. 2016 à 19:34
- Messages postés
- 410
- Date d'inscription
- lundi 25 juillet 2016
- Statut
- Membre
- Dernière intervention
- 24 novembre 2021
11 déc. 2016 à 19:34
Ca y est génial et oui en fait je me focalisais sur les liens mais c'étais sur le contenu des pages.
Vraiment merci
Cordialement
Vraiment merci
Cordialement