Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
987 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  session PhP / empecher l'acces a une page par "saut d'URL"

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

session PhP / empecher l'acces a une page par "saut d'URL"

n°157079
peemousse
Posté le 11-06-2002 à 21:05:27  profilanswer
 

mon probleme est lorsque une personne connait le nom de la page apres le login cette personne peut acceder a la suite du site sans passer par le login.
 
Comment eviter ce problème ? Il me semble que les sessions peuvent permettre de sécuriser ces pages ..
 
Si oui ? comment ?

mood
Publicité
Posté le 11-06-2002 à 21:05:27  profilanswer
 

n°157095
peemousse
Posté le 11-06-2002 à 21:25:21  profilanswer
 

vous avez compris le problème ? :D

n°157112
jultey
Posté le 11-06-2002 à 22:06:53  profilanswer
 

J'ai eu le pb l'aut' jour en asp !
j'ai fait un truc bidon :
En haut de la page, je recupere la valeur d'une variable $secu.
si la valeur est a "oui" j'affiche la page sinon j'affiche "vs n'avez ps le droit..."
 
pour crecuperer la valeur de $secu, je l'ai mit dans mon fichier d'authentification...
 
Je sais pas si je me fait comprendre
 
Le pb, c'est que ca doit etre plug long car tout est coder en php (asp pour mon cas)

n°157117
zion
Plop
Posté le 11-06-2002 à 22:23:12  profilanswer
 

jultey a écrit a écrit :

Le pb, c'est que ca doit etre plug long car tout est coder en php (asp pour mon cas)  




 
Plus court tu veux dire  :p


---------------
Informaticien.be - Lancez des défis à vos amis
n°157131
peemousse
Posté le 11-06-2002 à 22:49:53  profilanswer
 

mais y a pas un moyen de faire ca en Php a l'aide de fonction, ou de choses comme ca ?
 
Si vous avez des exemples, je suis preneur

n°157140
Stligar
Posté le 11-06-2002 à 23:01:28  profilanswer
 

soit tu utilises les sessions PHP : http://phpinfo.net/?p=articles&rub=sessions
 
Soit tu bloque ta page via apache et son .htaccess : http://online.fr/support/fr/doc/webperso/htaccess.html

n°157159
jultey
Posté le 11-06-2002 à 23:44:54  profilanswer
 

Zion a écrit a écrit :

 
 
Plus court tu veux dire  :p  




Non, je pensais que


<html>
<body>
</body>
</html>


 
etais plus court que  
 

echo "<html>" ;
echo "<body>" ;
echo "<body>" ;
echo "<html>" ;


 
C 'est pas le cas ?

n°157182
zion
Plop
Posté le 12-06-2002 à 00:01:15  profilanswer
 

Qui te demande de faire un echo de chaque ligne?
 

Code :
  1. <HTML>
  2. <BODY>
  3. <?echo(5+5);?>
  4. </BODY>
  5. </HTML>


 
C'est pareil pour le PHP, le CFM et l'ASP, ne crois pas que Microsoft a inventé la roue  :p


Message édité par zion le 06-12-2002 à 00:01:36

---------------
Informaticien.be - Lancez des défis à vos amis
n°157187
jultey
Posté le 12-06-2002 à 00:10:18  profilanswer
 

Zion a écrit a écrit :

Qui te demande de faire un echo de chaque ligne?
 

Code :
  1. <HTML>
  2. <BODY>
  3. <?echo(5+5);?>
  4. </BODY>
  5. </HTML>


 
C'est pareil pour le PHP, le CFM et l'ASP, ne crois pas que Microsoft a inventé la roue  :p  




 
le echo de chaque ligne, c'est justement pour securiser.
genre :
 
if($secu == "toto" )
{
   echo "<html><....>...blabla.</html>" ;
}
else
{
   echo "<html>NON AUTOTISE</html>" ;
}
 
si la pesonne vient directement a l'url sans avoir la valeur de $secu elle pourra pas voir la page.
D'ou l'interet de tout mettre en echo je pense

n°157197
j-'-r
Sans horraires fixe
Posté le 12-06-2002 à 00:25:51  profilanswer
 

jultey a écrit a écrit :

 
 
le echo de chaque ligne, c'est justement pour securiser.
genre :
 
if($secu == "toto" )
{
   echo "<html><....>...blabla.</html>" ;
}
else
{
   echo "<html>NON AUTOTISE</html>" ;
}
 
si la pesonne vient directement a l'url sans avoir la valeur de $secu elle pourra pas voir la page.
D'ou l'interet de tout mettre en echo je pense  




 
ou plus simple

Code :
  1. if($secu == "toto" )
  2. {?>
  3.     <html><....>...blabla.</html>
  4. <?}
  5. else
  6. {?>
  7.     <html><...>NON AUTOTISE</html>
  8. <?}


---------------
Perdu ? Vous êtes ici : --> *
mood
Publicité
Posté le 12-06-2002 à 00:25:51  profilanswer
 

n°157200
jultey
Posté le 12-06-2002 à 00:30:38  profilanswer
 

J-'-R a écrit a écrit :

 
 
ou plus simple
 




 
Ouai, mais j'aime pas trop comme ca, je touve que c'est moins lisible. Mais c'est peut etre plus rapide...

n°157206
Stligar
Posté le 12-06-2002 à 01:04:41  profilanswer
 

la solution que vous proposez n'a rien de "securisez" qq. qui a un minimun de connaissance detourne la protection en faisant le changement directement ds l'url surtout si tu appelles la variable secu :)

n°157209
jultey
Posté le 12-06-2002 à 01:15:39  profilanswer
 

Stligar a écrit a écrit :

la solution que vous proposez n'a rien de "securisez" qq. qui a un minimun de connaissance detourne la protection en faisant le changement directement ds l'url surtout si tu appelles la variable secu :)  




 
mais comment tu fais pour savoir la valeur de secu ?
 
fichier avec les 2 champs d'identification
 
-> envoie vers le fichier authentification.php qui n'affiche rien a l'ecran et qui se contente si le l'authentification est bonne de rajouter a l'url par GET ?secu=toto et de diriger vers les pages securisées.
Tu ne pourras donc pas voir la valur de $secu si tu n'a pas une authentification valide !
 
-> si tu vas direct a une page securisée tu a besoin de la valeur de $secu... mais hoooo, on ne l'a que si on s'est authentifié par le fichier authentification .php !
 
Je pense que c'est vraiment une page sécurisée !
 
Je l'ai fait sur un site, et si tu arrive a trouvé la valeur de ma variable de sécurité, c'est que t'as raison... mais sinon...

n°157213
Stligar
Posté le 12-06-2002 à 01:24:17  profilanswer
 

Ok en fait c'est à moitie securise ds la mesure ou si la personne connait l'url de la page "securise" il ya de forte chance que cette personne possede l'url complete dc la variable secu avec :)


Message édité par Stligar le 06-12-2002 à 01:24:31
n°157214
jultey
Posté le 12-06-2002 à 01:25:35  profilanswer
 

Stligar a écrit a écrit :

Ok en fait c'est à moitie securise ds la mesure ou si la personne connait l'url de la page "securise" il ya de forte chance que cette personne possede l'url complete dc la variable secu avec :)  




 
c vrai

n°157221
zion
Plop
Posté le 12-06-2002 à 02:19:09  profilanswer
 

euh...
 
www-authenticate, zoupla, clique sur recherche   :ange:


---------------
Informaticien.be - Lancez des défis à vos amis
n°157223
shurik'n
Posté le 12-06-2002 à 02:23:21  profilanswer
 

avec les sessions C tellement simple et rapide...
 
Tu start une session et tu verifie si elle existe dans la page suivante .... 3 min

n°157225
peemousse
Posté le 12-06-2002 à 02:58:51  profilanswer
 

Et tu pourrais m'expliker comment on fait ca ? Demarrer une session et verifier si elle existe dans la page suivante ?
 
merci

n°157263
jeffres
Posté le 12-06-2002 à 09:40:58  profilanswer
 

Tout d'abord, je te conseille d'aller faire un tour sur :http://www.phpinfo.net/?p=articles&rub=sessions. Tu y apprendras ce qu'il faut savoir sur les sessions.
 
J'avais à faire exactement la même chose que toi, j'ai procédé de la façon suivante :
 
1) Tu crée une session avec "session_start()" et dès que ton visiteur a été authentifié, tu crée une variable de session grâce à session_register("variable" ).
 
2) en début de chaque page de ton site, tu vérifie si la variable existe de la façon suivante :
 
session_start(); //création ou reprise d'une session
 
/* si la session ne comporte pas de variable "variable", redirection sur la page d'identification */
if (!session_is_registered("variable" ))
{
 session_destroy() or die("Erreur : impossible de détruire la session" ); //destruction de la session
 header("Location: ".$racine."index.php" ); //redirection
}

 
Note que le "session_is_registered" est bien mieux qu'un simple "if ($variable==valeur)", puisqu'il n'est pas possible de le tromper en passant la valeur de la variable dans l'url.
 
N'oublie pas de mettre session_start en haut de chaque page, sinon la session sera perdue.
 
Comme tu peux le lire à l'adresse que je t'ai indiqué, la transmission d'une session dépend de plusieurs facteurs, moi je me suis basé sur la transmission automatique grâce à session.use_trans_sid=1, mais ça pose tout de même des problèmes si les cookies sont désactivés, je ne sais pas encore de quoi ça vient.
 
Qui qu'il en soit, de cette manière le site est relativement bien sécurisé, je connais bien une faille liée au problème précédent mais il faut la trouver.
 
Si quelque chose ne te paraît pas clair, n'hésite pas à demander.


---------------
Jeffres
n°157264
j-'-r
Sans horraires fixe
Posté le 12-06-2002 à 09:42:32  profilanswer
 

Stligar a écrit a écrit :

Ok en fait c'est à moitie securise ds la mesure ou si la personne connait l'url de la page "securise" il ya de forte chance que cette personne possede l'url complete dc la variable secu avec :)  




non en passant un form method post et une varraible semi aleatoire qui change selon l heure...
 
bon, :sarcastic: , ok je vais loin :lol:


---------------
Perdu ? Vous êtes ici : --> *
n°157266
jultey
Posté le 12-06-2002 à 09:45:15  profilanswer
 

Jeffres a écrit a écrit :

Tout d'abord, je te conseille d'aller faire un tour sur :http://www.phpinfo.net/?p=articles&rub=sessions. Tu y apprendras ce qu'il faut savoir sur les sessions.
 
J'avais à faire exactement la même chose que toi, j'ai procédé de la façon suivante :
 
1) Tu crée une session avec "session_start()" et dès que ton visiteur a été authentifié, tu crée une variable de session grâce à session_register("variable" ).
 
2) en début de chaque page de ton site, tu vérifie si la variable existe de la façon suivante :
 
session_start(); //création ou reprise d'une session
 
/* si la session ne comporte pas de variable "variable", redirection sur la page d'identification */
if (!session_is_registered("variable" ))
{
 session_destroy() or die("Erreur : impossible de détruire la session" ); //destruction de la session
 header("Location: ".$racine."index.php" ); //redirection
}

 
Note que le "session_is_registered" est bien mieux qu'un simple "if ($variable==valeur)", puisqu'il n'est pas possible de le tromper en passant la valeur de la variable dans l'url.
 
N'oublie pas de mettre session_start en haut de chaque page, sinon la session sera perdue.
 
Comme tu peux le lire à l'adresse que je t'ai indiqué, la transmission d'une session dépend de plusieurs facteurs, moi je me suis basé sur la transmission automatique grâce à session.use_trans_sid=1, mais ça pose tout de même des problèmes si les cookies sont désactivés, je ne sais pas encore de quoi ça vient.
 
Qui qu'il en soit, de cette manière le site est relativement bien sécurisé, je connais bien une faille liée au problème précédent mais il faut la trouver.
 
Si quelque chose ne te paraît pas clair, n'hésite pas à demander.  




 
C'est bien expliqué ! Ca a l'air simple en fait, je vais l'utiler maintenant !

n°157281
jultey
Posté le 12-06-2002 à 10:02:08  profilanswer
 

Jeffres a écrit a écrit :





 
Heuuu, pourrait tu m'expliquer ce truc la ??
 
On peut décider de passer à chaque fois l'id de session dans l'URL. C'est une solution qui fonctionne à tous les coups même si elle est lourde et peu élégante.
Les URL seront alors de la forme : "index.php?".session_name()."=".session_id() ou index.php?<? echo session_name();?>=<? echo session_id(); ?> ou autres variantes du même genre

n°157319
jeffres
Posté le 12-06-2002 à 10:33:10  profilanswer
 

session_name() renvoie le nom de la session, session_id() renvoie son identifiant.
 
Le fait de passer session_name()=session_id() dans l'url permet de conserver la session d'une page à l'autre.
 
Si ce sont les notations qui te posent problème, elles dépendent de ce que tu sois au sein d'une balise PHP ou non.
 
Ainsi, si ton url se trouve entre les balises <?php et ?>, il faut utiliser la concaténation (le "." ) pour construire l'url : "index.php?".session_name= équivaut à "index.php?PHPSESSID=" si session_name() renvoie "PHPSESSID".
 
Si l'url se trouve dans du code HTML, il faut passer en PHP pour récupérer le nom et l'idendifiant de la session, c'est pourquoi on écrit index.php?<? echo session_name();?>= qui équivaut à exactement la même chaine que précédement, echo session_name() écrivant "PHPSESSID".
 
Ca répond à tes interrogations ? T'avais peut-être déjà compris tout ça mais je ne voyais qu'est-ce qui pouvait te poser problème à part ça.


Message édité par jeffres le 06-12-2002 à 10:34:37

---------------
Jeffres
n°157324
jultey
Posté le 12-06-2002 à 10:38:03  profilanswer
 

Non, en fait, je me suis mal exprimé. :gun:  J'avais compris qu'on passait les infos via l'URL  :sarcastic: .
C'est par la méthod GET si je n'm'abuse.
 
En fait, ca me choque qu'on passe le nom de session et l'id de session en clair... Ca pose pas de pb au niveau de sécurité  :??: ?
2eme interogation : Est-ce qu'on peut en meme temps passe un formulaire en POST ou en GET

n°157339
jeffres
Posté le 12-06-2002 à 10:45:38  profilanswer
 

Passer les infos via l'URL signifie les transmettre pas le lien, cela se fait en rajoutant tout simplement un point d'interrogation à la fin  du lien du style :
 
lien?variable1=valeur1&&variable2=valeur2
 
Ensuite tu récupère les valeurs dans les variables $variable1 et $variable2 dans la page suivante. Mais attention, elles ne durent que sur une page, il faut les retransmettre dans l'url suivant ou les stocker par des cookies pour qu'elle persistent.
 
J'ai répondu à ta question cette fois ?
 
Pour ce qui est de GET et POST, je ne peux pas te répondre, je n'ai jamais utilisé GET.


Message édité par jeffres le 06-12-2002 à 10:45:56

---------------
Jeffres
n°157350
jultey
Posté le 12-06-2002 à 10:55:33  profilanswer
 

Jeffres a écrit a écrit :

 
J'ai répondu à ta question cette fois ?
 




 
Mmmm , je crois pas, ce que je voulais dire que n'importe qui peut voir le nom de la session et l'id dans le lien...
 
Si une personne se connecte, les infos passent par l'url... Si quelqu'un d'autre voit ce lien ( en passant a coté de l'odri par exemple ) et se connecte juste apres en passant les meme parametres... Ca fait quoi ? Ca marche ?

n°157356
jeffres
Posté le 12-06-2002 à 11:00:08  profilanswer
 

Je ne pense pas que ce soit possible, il n'y a pas de moyen à ma connaissance pour affecter soit-même une id à une session.
 
De toute façon, celles-ci ne sont pas permanentes, et une id différente est générée à chaque fois.
 
A noter que la transmission explicite fait exactement la même chose et que le nom et l'id apparaissent de toute façon, même si chez moi elle doit se louper à un moment et qu'elle se repose sur les cookies. Ce que je ne comprends toutjours pas d'ailleurs.


---------------
Jeffres
n°157364
jultey
Posté le 12-06-2002 à 11:05:42  profilanswer
 

Jeffres a écrit a écrit :

Je ne pense pas que ce soit possible, il n'y a pas de moyen à ma connaissance pour affecter soit-même une id à une session.
 
De toute façon, celles-ci ne sont pas permanentes, et une id différente est générée à chaque fois.
 
A noter que la transmission explicite fait exactement la même chose et que le nom et l'id apparaissent de toute façon, même si chez moi elle doit se louper à un moment et qu'elle se repose sur les cookies. Ce que je ne comprends toutjours pas d'ailleurs.  




 
Ok, merci, je testerai ca chez moi ce week end...
http://www.jultey.firstream.net/jultey/smiley/egyptien.gif


Message édité par jultey le 06-12-2002 à 11:06:11
n°157627
peemousse
Posté le 12-06-2002 à 14:56:49  profilanswer
 

Bon, tout d'abord merci poour votre aide, je vois que beaucoup de gens se sont mobilisé, c'est sympa.
 
D'apres vos conseils et ce que j'ai pu trouver sur internet, j'ai récupéré un script verif.php
 
Protéger une page (verif.php)  
 
<?
session_start();
 
/*  
si session_is_registred() renvoie false cela siginifie que le visiteur  
n'a pas de session d'ouvert, il n'est donc pas loggué ni autorisé à  
acceder à l'espace membres
*/
if(!session_is_registered('login';))
    {
    echo 'Vous n\'êtes pas autoriser a acceder a cette zone';
    include('login.htm';);
    exit;
    }
?>    
 
Est ce que ca vous parrait bien.  
 
Si non comment l'améliorer.

n°157634
jultey
Posté le 12-06-2002 à 15:01:03  profilanswer
 

peemousse a écrit a écrit :

Bon, tout d'abord merci poour votre aide, je vois que beaucoup de gens se sont mobilisé, c'est sympa.
 
D'apres vos conseils et ce que j'ai pu trouver sur internet, j'ai récupéré un script verif.php
 
Protéger une page (verif.php)  
 
<?
session_start();
 
/*  
si session_is_registred() renvoie false cela siginifie que le visiteur  
n'a pas de session d'ouvert, il n'est donc pas loggué ni autorisé à  
acceder à l'espace membres
*/
if(!session_is_registered('login';))
    {
    echo 'Vous n\'êtes pas autoriser a acceder a cette zone';
    include('login.htm';);
    exit;
    }
?>  

Est ce que ca vous parrait bien.  
 
Si non comment l'améliorer.  




 
 
Heuu, il me semble que Jeffres a deja poster ca... si tu l'as cherché sur internet.... :lol:

n°157645
peemousse
Posté le 12-06-2002 à 15:05:47  profilanswer
 

Je suis vraimment unr crotte !! ... :spookie:
 
Le pire c'est que je l'ai vu le srcipt de Jeffres, mais j'ai pas fait le rapprochement tout de suite...
 
Toute ma Confuse .. :D
 
 
Merci en tout cas les pages sont un minimums protégées...
 
Donc si vous avez des améliorations à apporter , je suis dans le coin


Message édité par peemousse le 06-12-2002 à 15:06:12
n°157647
jeffres
Posté le 12-06-2002 à 15:06:19  profilanswer
 

Faut avouer, ça ressemble quand même beaucoup à ce que j'ai dit.
 
Inutile donc de préciser que ça m'a l'air très bien, d'autant plus que c'est testé et approuvé.


---------------
Jeffres
n°157654
peemousse
Posté le 12-06-2002 à 15:08:31  profilanswer
 

Bah je vais donc avoir l'honneur de clore le sujet, en vous remerciant tous pour votre aide et votre participation à ce Topic
 
Merci beaucoup et gros bisous

n°157656
jultey
Posté le 12-06-2002 à 15:10:17  profilanswer
 

peemousse a écrit a écrit :

Bah je vais donc avoir l'honneur de clore le sujet, en vous remerciant tous pour votre aide et votre participation à ce Topic
 
Merci beaucoup et gros bisous  




Loupé, c'est moi

n°157676
jeffres
Posté le 12-06-2002 à 15:17:22  profilanswer
 

Non, c'est moi !


---------------
Jeffres
n°157682
jultey
Posté le 12-06-2002 à 15:18:07  profilanswer
 

Jeffres a écrit a écrit :

Non, c'est moi !  




d'accord, si tu veux  :hello:

n°157687
jeffres
Posté le 12-06-2002 à 15:20:06  profilanswer
 

Tu m'auras pas comme ça ! J'ai dit que ce serait moi, alors ce sera moi !


---------------
Jeffres
n°157689
jultey
Posté le 12-06-2002 à 15:21:14  profilanswer
 

Jeffres a écrit a écrit :

Tu m'auras pas comme ça ! J'ai dit que ce serait moi, alors ce sera moi !  




serais, il faut un "s"

n°157703
jultey
Posté le 12-06-2002 à 15:26:10  profilanswer
 

jultey a écrit a écrit :

 
serais, il faut un "s"  




 
Trop con, non, il faut un T !! :pt1cable:  [:jultey]

n°157704
jeffres
Posté le 12-06-2002 à 15:26:16  profilanswer
 

Hum, pas sûr...
 
Je parlais pour le "s" bien sûr, je suis d'avis qu'il faut un "t".


Message édité par jeffres le 06-12-2002 à 15:26:46

---------------
Jeffres
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  session PhP / empecher l'acces a une page par "saut d'URL"

 

Sujets relatifs
Envoyer un mail vers exchange server depuis une page ASP[HTML] liens de différentes couleurs sur une meme page ?
Editeur PHP à indentation[PHP] - gethostbyaddr (help)...
Formulaire, HTML, redirection Javascript, PHP...[Php & Javascript] J'arrive pas a faire ce que je veux
[PHP] prob avec upload e fichiers(images) et la variable $_FILESPHP retrouver la liste des fichiers contenus dans un répertertoire ?
Tomcat 4 : stocker l'identifiant de session dans l'URL 
Plus de sujets relatifs à : session PhP / empecher l'acces a une page par "saut d'URL"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR