01-02-2010, 11:18 PM
value n'est pas le time() crypté, mais un jeton qui va être passé à la fois par le formulaire et un autre endroit (typiquement, la session).
Le principe des CSRF est d'amener l'utilisateur, sans qu'il le sache, à executer une action. Quelques exemples :
Mettons que tu es administrateur du jeu. Tu te connectes au jeu, ta session se fait par cookie. Je reprends pour commencer l'exemple de wikipédia : j'apprends que l'url pour monter mes caracteristiques est monter.php?personnage=25 (où 25 est mon ID). Si je poste sur ton forum un truc comme ça :
[ img]http://www.tonjeu.com/monter.php?personnage=25[/ img]
Ton navigateur va chercher à charger la page comme une image. Les cookies sont envoyés dans les images ; donc tu vas automatiquement être connecté, et ça va monter mon personnage, sans même que tu ne t'en aperçoive.
Autre exemple : je sais que le formulaire pour supprimer un personnage ressemble, dans le code, à ça :
Le principe des CSRF est d'amener l'utilisateur, sans qu'il le sache, à executer une action. Quelques exemples :
Mettons que tu es administrateur du jeu. Tu te connectes au jeu, ta session se fait par cookie. Je reprends pour commencer l'exemple de wikipédia : j'apprends que l'url pour monter mes caracteristiques est monter.php?personnage=25 (où 25 est mon ID). Si je poste sur ton forum un truc comme ça :
[ img]http://www.tonjeu.com/monter.php?personnage=25[/ img]
Ton navigateur va chercher à charger la page comme une image. Les cookies sont envoyés dans les images ; donc tu vas automatiquement être connecté, et ça va monter mon personnage, sans même que tu ne t'en aperçoive.
Autre exemple : je sais que le formulaire pour supprimer un personnage ressemble, dans le code, à ça :
Code PHP :
<?php
<form method="post" action="supprimer.php">
Id à supprimer : <select name="personnage">
<option value="1">Supprimer le personnage 1</option>
<option value="2">Supprimer le personnage 2</option>
<option value="3">Supprimer le personnage 3</option>
</select>
<input type="submit" /></form>
Un truc tout simple. Mettons maintenant que, en tant que membre de ton jeu, je veux que le personnage 2 soit supprimé. Si je t'amène (par exemple par un lien sur le forum) à valider un formulaire à la con de ce genre :
Code PHP :
<?php
<form method="post" action="http://www.tonjeu.com/supprimer.php">
Entrez un chiffre : <input name="chiffre" />
<input type="hidden" name="personnage" value="2" /><input type="submit" /></form>