-
Protéger une url
Bonjour,
J'ai appris le PHP récemment, et j'ai refais pour m'amuser le Facemash de Mark Zuckerberg.
Lorsqu'on clique sur une image on arrive sur un lien de la forme "http://localhost/score.php?nom=photo26.jpg" (redirection ensuite vers index.php), ce qui augmente le score de la photo26 de 1 point. Le souci est que si on tape cette URL dans la barre d'adresse et qu'on répète plusieurs fois on peut augmenter le score de l'image à volonté.
J'aimerais bien que la seule façon d'augmenter le score soit de passer par le lien présent sur l'image.
Je ne suis pas un prodige de la programmation :)
Merci de votre aide.
PS : désolé j'ai pas trouvé mieux comme titre...
-
Bonsoir,
Tu peux très bien passer un argument supplémentaire à ton lien qui te permettra d'incrémenter le compteur uniquement si l'argument est présent.
-
Merci de ta réponse,
Mais si tu fais un clic droit sur l'image -> copier le lien... tu as récupère quand même l'argument (score.php?nom=photo26.jpg&argument=argument). Je vois pas comment tu veux faire.
-
Oui, j'aurais dû préciser : il faut générer un token que tu stockes dans une table que tu passes en arguments au lien. Quand quelqu'un clique sur l'image, le lien enverra le token, tu vérifies s'il existe dans ta table et si oui, tu incrémentes le compteur. Une fois le token utilisé, il est supprimé. Ensuite tu sers l'image.
Tu mets une durée de vie au token.
Une autre approche est de générer un identifiant expirable et tu l'ajoutes au lien.
-
Super merci beaucoup,
Je vais chercher dans le sens de l'id expirable, je ne sais pas ce que c'est un token (vague idée...).
-
Bon,
j'ai fait un petit session_start()
Ensuite j'ai utilisé une fonction qui fait un random alphanumérique avec 100 caractères.
On compare les deux codes et si ils sont pas identique on refuse le vote.
Merci de votre aide ça marche nikel.
-
Maintenant, tu sais ce qu'est un token :ccool: