2011-03-10 1 views
0

J'ai ce formulaire sur mon site, je veux empêcher les utilisateurs de soumettre le formulaire à partir d'une copie locale. ou soumettez le formulaire d'un autre domaine (Cross Site Scripting).Comment vérifier le formulaire envoyé par le même serveur sans utiliser HTTP_REFERER?

le HTTP_REFERER n'est pas fiable car il est facile de truquer.

J'ai l'idée de vérifier où le formulaire a été soumis, en appelant le serveur juste avant de soumettre l'info. mais je ne suis pas si sûr si sa bonne idée. Remerciez ilanko

Répondre

0

Ce qu'on appelle CSRF et est habituellement résolu en ayant un input caché à l'intérieur d'une forme. La valeur dudit input est attribuée du côté serveur et est stockée dans une session. Lors de la soumission du formulaire, ces deux valeurs sont comparées et la soumission du formulaire se poursuit uniquement si elles sont égales.

+0

Merci, mais le délai d'attente de session du serveur laisse suffisamment de temps pour afficher la source et enregistrer le formulaire, et enfin soumettre une copie locale de celui-ci, y compris l'entrée cachée valide. – ilanko

+0

@ilanko C'est impossible. Lorsque vous soumettez une page localement, vous obtenez une toute nouvelle session. –

Questions connexes