2010-12-01 1 views
0

J'ai un site web, alimenté par MODx, qui est centré autour d'un formulaire. L'accès à la page Web avec le formulaire est réservé aux membres inscrits (gérés par MODx). L'utilisateur remplit quelques entrées de texte, sélectionne un fichier à télécharger, puis envoie un envoi. L'action spécifiée est un script CGI submit.py sous/cgi-bin qui enregistre les informations soumises et enregistre le fichier, et il s'exécute parfaitement.Empêcher l'accès aux scripts CGI basés sur la source du formulaire HTML

La seule préoccupation est que je toute forme (apparemment), si elles précisent le droit URL de l'attribut d'action <form>, semble être en mesure de lier leur forme à mon script CGI. Ce qui signifie qu'ils peuvent écrire ce qui suit sur leur propre page:

<form action="http://my-site.com/cgi-bin/submit.py"> 
    <!-- blah blah blah --> 
</form> 

et les données seront envoyées à mon formulaire CGI et traité (comportement indésirable).

Ma question est la suivante: Y at-il un moyen de restreindre l'exécution du script basé sur le formulaire HTML qui a envoyé les données? Est-ce que je manque quelque chose de vraiment évident?

J'ai fait des recherches en ligne et j'ai trouvé un problème légèrement lié à CSRF, mais s'il y a un moyen autre que l'authentification par jeton pour empêcher l'utilisation non autorisée du script CGI, j'aimerais l'entendre.

Répondre

0

Vous pouvez créer un jeton d'utilisation unique qui doit être envoyé avec votre formulaire pour s'assurer qu'il est valide (c'est ce que vous avez mentionné).

Bien que cela pourrait être saisi et envoyé aussi bien.

La vérification du référant n'est pas utile car elle est facilement usurpée ou absente (certains mandataires la filtrent).

En bref, sans utiliser le jeton pour l'atténuer, vous êtes en difficulté. Sauf tout le monde sur le web a ce problème :)

Questions connexes