Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2006, 08h51   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
Par défaut [Sécurité] Empêcher l'accès aux pages

bonjour à tous,

je sais que mon titre n'est pas très explicite sur mon problème mais g pas trouvé mieux.

Ce que je voudrais c'est que l'on ne puisse pas accèder aux pages de mon site en tapant une partie de l'url. En gros quand on tape www.monSite.fr/articles on arrive directement sur une page qui demande un login et un mot de passe. mais si je tape www.monSite/articles/consulter j'arrive à la page index.php du dossier consulter et la je peux naviguer sans problème sur mon site.

Y'aurait t'il un moyen de restreindre accès ou de rediriger les personnes qui tape l'url vers la page de login?

d'avance merci
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 09h35   #2
naz
Futur Membre du Club
 
Inscription : mai 2004
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 21
Points : 18
Points : 18
Je dirais que tu fais une page index.php avec un bon vieux header("Location: ./truc/identification.php");
naz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 09h35   #3
Membre confirmé
 
Avatar de NeHuS
 
Inscription : décembre 2004
Messages : 343
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 343
Points : 267
Points : 267
Salut benoit , moi aussi je suis de france euh de Nice jt'ai cassé


Sinon pour ta question :avec un http referer

Code :
$_SERVER['HTTP_REFERER']
tu testes si il vient bien d'article sinon tu fais un header('lapagederedirection.php');

le seul probleme c'est que l'information est facilement modifiable ça reste toutefois une barriere
__________________
Cliquez sur

Evitez de mettre Probleme
dans les titres de vos posts
NeHuS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 09h43   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
oki pour le header, car une simple protection sera suffisante à moins que "http referer" soit assez simple à mettre en place. Pourriez vous m'éclairer sur l'endroit où je dois mettre ce header et sur ce que je dois taper.

Pour info NeHus, il m'est arrivé de voyager et au moment ou j'ai créé mon compte j'étais ( je te le donne en mille) en france ...voila vous savez tout de moi
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 09h58   #5
Membre confirmé
 
Avatar de NeHuS
 
Inscription : décembre 2004
Messages : 343
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 343
Points : 267
Points : 267
Dans ta page www.monSite/articles/consulter/index.php
Code :
1
2
3
4
5
6
7
8
 
<?php
$prout = $_SERVER['HTTP_REFERER'];
if ($prout != "www.monSite/articles/index.php")
{
header('../index.php');
}
?>
__________________
Cliquez sur

Evitez de mettre Probleme
dans les titres de vos posts
NeHuS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 10h18   #6
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
oki, je viens de modifier mon code et ça ne change rien. je peux taper l'url de ma page de navigation dans mon site www.monSite.fr/articles/navigation.php et je tombe encore sur ma page de navigation sans souci.

Je viens pourtant d'ajouter ce bout de code à la page navigation:
Citation:
<?php
$pagePrecedente = $_SERVER['HTTP_REFERER'];
if ($pagePrecedente != "www.monSite/articles/login.php")
{
header('../index.php');
}
?>
Je voudrais juste contrôler que l'utilisateur est bien passé par la page login avant de tomber sur la page navigation.php.

PS: j'ai changé le prout (bien qu'il soit tout à fait élégant)
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 10h24   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
kel imbécile..

je n'avais pas rechargé ma page...mais maintenant c'est tout bon,

il faut juste que je le fasse pour toutes mes pages
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 11h04   #8
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
me voila devant un nouveau problème.

Le truc c'est que lorsque j'arrive sur ma page modificationDonnées.php je sélectionne la société dans un menu déroulant et je clique sur un bouton valider pour afficher les coordonnées de la société dans la MEME page. Donc si je lui dis de ne pas afficher la page si tu ne viens pas de la page précédente ca ne marche plus.

Pouvez vous me dire comment faire sachant que j'ai déjà essayer de lui dire si tu viens de la page précédente ou si tu viens de cette page tu ne restreint pas l'acces.

voici mon code
Citation:
<?php
$pagePrecedente = @$_SERVER['HTTP_REFERER'];
if (($pagePrecedente != "www.monSite.fr/articles/modifier_supprimer/11_choixOperationSociete.php")
OR ($pagePrecedente != "www.monSite.fr/articles/modifier_supprimer/111_choixSocieteModifier.php"))
{
header('Location:www.monSite.fr/articles/index.php');
}
?>
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 15h59   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
Je suis désolé d'insister mais je ne trouve vraiment pas

Auriez vous une idée pourquoi ca ne fonctionne pas?
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 16h33   #10
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
je viens de me rendre compte que l'utilisation d'un "ET" (&&) était plus judicieuse pour résoudre mon preoblême. Malgré cela je reste bloqué sur une autre page avec le meme genre de probleme.

Mon code est le suivant
Citation:
<?php
$pagePrecedente = @$_SERVER['HTTP_REFERER'];
if (($pagePrecedente != "www.monSite.fr/articles/navigation.php")
&& ($pagePrecedente != "www.monSite.fr/articles/modifier_supprimer/operationReussie.php"))
{
header('Location:www.monSite.fr/articles/index.php');
}
?>
J'ai lu dans plusieurs article que la variable HTTP_REFERER était parfois vide ou encore érroné. Est-ce que ça pourrait etre mon cas?
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 16h41   #11
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
En fait ce n'est pas mon cas puisque je viens de faire un echo HTTP_REFERER et je retrouve bien le nom de ma page.

une idée?
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 09h33   #12
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
je viens finalement de trouver une solution. Au lieu d'utiliser un && je suis passer par un || (ou) que j'avais mis au début d'ailleur car avec un &&, il suffisait qu'une des conditions soit fausse pour que tout soit faux.

bon sinon voila ce que j'ai fait:
Citation:
<?php
if ($_SERVER['HTTP_REFERER'] != "")
{
if (($_SERVER['HTTP_REFERER'] = "www.monSite.fr/articles/modifier_supprimer/operationReussie.php")
||($_SERVER['HTTP_REFERER'] = "www.monSite.fr/articles/navigation.php"))
{}
else{
header('Location:www.monSite.fr/articles/index.php');
}}
?>
je test a présent en plus la variable $_SERVER['HTTP_REFERER'] pour savoir si elle existe.

merci de mon aide et de la votre.

A++
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 10h29   #13
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
en fait je suis retomber au début, la ou toutes les pages étaient en accès libre.



je ne vois vraiment plus comment faire.
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 11h18   #14
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 17
Points : 15
Points : 15
salut,

bon moi je ne connais pas bien (et je n'utilise pas) le $_SERVER['HTTP_REFERER'].

mais dans ton cas, pourquoi ne pas faire une vérification de l'authentification à chaque page sécurisée ?
j'utilise un script d'authentificarion en php, et dans chaque page je fais un secure.php vérifie que l'id de session passé est bien conforme à la session en cours.
sinon et ben je redirige avec un header vers la page de login...

c'est ma méthode, mais je n'ai peut-etre pas bien compris ton problème...

bonne journée

jerome
jérômeencrise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 11h30   #15
Membre confirmé
 
Avatar de NeHuS
 
Inscription : décembre 2004
Messages : 343
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 343
Points : 267
Points : 267
ouaip benoit tu pourrais faire ça aussi , creer un var de session sur ton index.php et tu test si cette var est presente sinon tu rediriges vers l'index

parceque la je viens de voir ce que t as fait c'est normal que ça ne marche pas , tu fais un test en lui disant si tu viens de cette page ( c'est a dire la page que tu viens de visiter) alors c'est bon je te laisse passer...

si tu envoies des formualires sur la meme page le httpreferer pose probleme c'est certain
__________________
Cliquez sur

Evitez de mettre Probleme
dans les titres de vos posts
NeHuS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h55.


 
 
 
 
Partenaires

Hébergement Web