par
Ryle » 21 avr. 2006, 14:48
p'tit exemple...
Episode 1 : le Formulaire (dans une lointaine galaxie tout ça)
<form ... method="post">
<input type="text" name="champ" value="<?=$_POST['champ'];?>">
...
</form>
Episode 2 : la Confirmation contre attaque
<form ... method="post">
Vous avez saisi : <?=$_POST['champ'];?>
<input type="hidden" name="champ" value="<?=$_POST['champ'];?>">
...
</form>
Episode 3 : L'attaque de l'enregistrement en base
$sql = "UPDATE ... champ='".$_POST['champ']."'" ... ";
Episode 3 bis : Le retour du formulaire
Faut un p'tit bout de javascript pour que le bouton annuler poste le formulaire caché non pas en direction de la base, mais du formulaire
jpaul >> je suis pas un grand expert en sécurité mais effectivement que ce soit en Get ou que ce soit en Post à mon sens ca ne change rien. C'est pas beaucoup plus compliqué de passer la variable dans l'url que de se faire une page html sur sa machine qui enverra les données par Post (bon après on peut aussi contrôler la page d'origine des données, mais y a surement un moyen de le trapper aussi...

)
C'est je pense plus au niveau des sessions ou cookies que la sécurité est améliorée : ca évite de pouvoir remplacer un "$_SESSION['admin']=true" qui restreint l'accès à une page, par un "&admin=true" dans l'url

p'tit exemple...
Episode 1 : le Formulaire (dans une lointaine galaxie tout ça)
[php]<form ... method="post">
<input type="text" name="champ" value="<?=$_POST['champ'];?>">
...
</form>[/php]
Episode 2 : la Confirmation contre attaque
[php]<form ... method="post">
Vous avez saisi : <?=$_POST['champ'];?>
<input type="hidden" name="champ" value="<?=$_POST['champ'];?>">
...
</form>[/php]
Episode 3 : L'attaque de l'enregistrement en base
[php]$sql = "UPDATE ... champ='".$_POST['champ']."'" ... ";[/php]
Episode 3 bis : Le retour du formulaire
Faut un p'tit bout de javascript pour que le bouton annuler poste le formulaire caché non pas en direction de la base, mais du formulaire
jpaul >> je suis pas un grand expert en sécurité mais effectivement que ce soit en Get ou que ce soit en Post à mon sens ca ne change rien. C'est pas beaucoup plus compliqué de passer la variable dans l'url que de se faire une page html sur sa machine qui enverra les données par Post (bon après on peut aussi contrôler la page d'origine des données, mais y a surement un moyen de le trapper aussi... :))
C'est je pense plus au niveau des sessions ou cookies que la sécurité est améliorée : ca évite de pouvoir remplacer un "$_SESSION['admin']=true" qui restreint l'accès à une page, par un "&admin=true" dans l'url :)