La redirection ? Pas une solution : POURQUOI ?

Résolu
Signaler
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007
-
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007
-
Salut, je suis à la recherche de méthode de programmation pour protéger mon site web. En cherchant un peu, je suis tombé sur un sujet parlant de plein de faille possible sur ce forum. J'ai d'ailleur, très peu compris le tuto que l'on peut t trouver.

Je vais donc tenter de trouver une explication claire en vous demandant de traduire ceci :

citation :

La redirection ? Pas une solution. Par Juliian


Lorsque vous mettez à la disposition de vos membres un acces privé, ces derniers doivent se connecter, une personne mal intentionnée peut tout de même accéder à vos espaces protégés si la seule protection est la redirection automatique, quels genre de codes sont infectés ?


If ($password != "Pouletgrille")  { print'
Exemple : <meta name="robots" content="index, follow"> '; }




Pourquoi? Que va il se passer quand le "piratin" va rentrer un mauvais mot depasse ? Il va arriver sur votre page  protégée, et va être aussitôt redirigé vers une page d'erreur, et c'est là l'erreur : Le visiteur pourra toujours bloquer son navigateur, ou enregistrer votre page, et il vera l'intégralité de votre espace "protégé", et pourra y accomplir ses méfaits.


Comment y remédier ? C'est simple, il faut de toute façon que le contenu de votre espace protégé n'apparaisse jamais sur la page de vos visiteurs, même pas une micro-seconde, le moyen le plus simple de réparer ce problème est d'agir comme suit :




If($password != "Pouletgrille")  { Print'Insérez ici le contenu de votre section admin'; } else { print'Erreur de connexion !'; }

fin de la citation

Merci pour votre aide, Cordialement

10 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
Hello,

je pense qu'il parlait de la génération de la page.
En gros :
if (mauvais login) {
    header (vers une page d'erreur);
}
// génération de la page.
ça, ça va, parce que c'est une redirection php, et que le php s'exécute avant le html (ou le js).
mais :
if (mauvais login) {
    echo redirection html ou javascript
}
// génération de la page

y a pas bon. La redirection et le html de ta page vont se générer peu ou prou en même temps.
Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008

pour faire bref :

// à faire : redirection en php
------------
la redirection en php se fait au niveau du serveur, donc avant que le browser reçoive les infos, donc le visiteur n'aura pas le code de la page si le mot de passe est invalide. il aura le code de la page redirigé

<?php
if (mot_de_passe_invalide)
{
// redirection page invalide
header("Location ...");
}

// affichage page valide ...
?>



à pas faire : redirection en html/js
-------------
La redirection se fait au niveau du navigateur en html/javascript donc le visiteur a déjà reçu le code de la page quand la redirection aura lieu.

<?php
// tester pass
if (mot_de_passe_invalide)
{
echo "<script ...>redirection ...</script>"
}

// affichage page valide ...
?>


je vois pas comment faire plus clair

++
Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008

Je ne sais pas d'où viens cette citation mais c'est complétement bidon.
Il est tout à fait logique de n'écrire le contenu de ta page que si le mot de passe est validé.
Il n'y a aucun point de sécurité là dedans, ou bien je n'ai pas saisie la subtilité.

++
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007

Je donne le lien ou j'ai trouvé le tuto en question :

http://www.phpcs.com/tutorial.aspx?ID=202

lire la faille numéro 2

merci pour votre aide, cordialement
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007

Merci pour ta réponse
Déolé, au risque d'être lourd, je pige vraiment pas.

Enfin, sa veut dire quoi ? Sa veut dire que quand on écrit une redirection en html, tout le reste de la page s'exécute ??? C'es pas logique sa ! Si après cette redirection Html ou Js on y met un "exit()", d'après ce que je sais, tout le reste de la page est ignoré.

Enfin, sa me prend la tête. Y en a qui font des tuto pour aider ceux qui connaisse pas, mais la franchement c'est abusé comme c'est lourd. En ce moment je lis 4 livre en même temps sur le développement web et franchement je pige bien, mais la, pour un truck aussi con j'y arrive pas !

J'comprend po
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007

Ok merci, je commence à y voir plus claire. En fait c'est une histoire d'étanchéité. Lui ce qu'il fait, il isole le contenu de la page admin avec un if / else. II affiche le contenu de la page admin ou, d'ans l'autre cas, il affiche un message d'erreur. De cette façon il rend etanche sa page admin à une mauvaise identification.

Merci pour votre aide
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007

Tout cela me pousse à comprendre des choses sur le comportement fondamentale de ce typte de développement :

Si je comprend bien, si on a un script php écrit uniquement en php, alors cette page php reste sur le serveur pendant sont exécution.

Dans l'autre cas, si une page php contient du Html ou du Js, alors cette page est transféfée sur la machine de l'utilisateur.

C'est simple mais j'avais des doutes à propos du transfère d'une page php sur le pc de l'utilisateur. Je pensais qu' une page php était systèmatiquement transférée sur le pc de l'utilisateur.

Je pense que c'est pour cela que j'arrivais pas à comprendre.
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007

Je vais corriger un truck dans mon dernier message...

citation :

Si je comprend bien, si on a un script php écrit uniquement en php...
Dans l'autre cas, si une page php contient du Html ou du Js...

fin de citation

Je dirais plutôt :

Si je comprend bien, si on a un script php qui exécute uniquement du code php, alors cette page php reste sur le serveur pendant sont exécution.
Dans l'autre cas, si on a un script php qui exécute du Html ou du Js, alors cette page est transféfée sur la machine de l'utilisateur.

Voilà c'est plus claire dit comme ça. Je suis peut être un peu répétitif, mais le forum ne donne pas la possibilité d'éditer mon précédent message. Ou alors je n'ai pas trouvé.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

>> "Pourquoi? Que va il se passer quand le 'piratin' va rentrer un mauvais
mot depasse ? Il va arriver sur votre page  protégée, et va être
aussitôt redirigé vers une page d'erreur, et c'est là l'erreur : Le
visiteur pourra toujours bloquer son navigateur, ou enregistrer votre
page, et il vera l'intégralité de votre espace 'protégé', et pourra y
accomplir ses méfaits."

Pour éviter ça tu fais un truc dans ce genre, plutôt que de te trimbaler un gros if/else sur toute ta page :

<?php
    if(mauvais_passe OU pas_enregistre)
    {
          header('location: erreur.php');
          exit;
    }

    //Ensuite ici le code qui s'affiche si le membre peut consulter la page protégée.
?>
<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
69
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
18 janvier 2007

Oui, c'est vrai que c'est plus pratique et plus propre de faire comme ça.

A+