Perl et CGI

Salut,

Je bricole pas mal en perl en ce moment et je m’intéresse de plus en plus à la génération de script CGI via le module CGI de perl.
Je m’envoie régulièrement la doc http://perldoc.perl.org/CGI.html mais d’après ce que j’ai pu lire sur le net la sécurité de ces scripts est quand même un point important, notamment en ce qui concerne le passage d’arguments.

Par exemple j’ai envie d’utiliser le code suivant pour récupérer les données d’un formulaire :

my $cgi = new CGI;

my $data = $cgi->param('combo');

Derrière je peux tester $data pour éliminer d’éventuelles vacheries et ensuite traiter ça comme j’en ai envie.
Question bête : est-ce que je fait confiance à perl où est-ce que je me paluche une méthode pour analyser toute la requête et refaire le boulot ?

N’étant pas un expert dans la génération de pages dynamiques j’aimerais être orienté vers de la doc traitant de la sécurité de ces pages.

Le principe de base de la sécurité des pages web quand tu récupères des données en POST c’est de tester le domaine de provenance de la requête (de tête HTTP_REFERER, mais je peux me planter) et son IP, voir même le nom de la page s’il y en a qu’un nombre fini.

Strictement aucune utilité de faire ça : tu ne peux pas faire confiance au client, il faut partir du principe que les infos qu’il t’envoie sont forgées de toutes pièces. Et aussi, le champ Referer est optionnel donc se baser là dessus pour vérifier la validité d’une requête casse le protocole HTTP, et ça emm…rait les utilisateurs inutilement (dont par exemple moi-même car je bloque les referers en permanence).
La seule méthode viable pour vérifier la provenance d’une requête c’est les identifiants de session (sous forme de cookie) avec maintien de l’état côté serveur uniquement.

Pour ce qui est de la question originale : je serais toi je ferais confiance à Perl… il y a beaucoup de monde qui travaille avec et qui remonte les bugs et les failles de sécurité aux devs, toi tout seul tu n’arriveras pas à obtenir une telle qualité en un temps raisonnable. Au niveau du protocole HTTP lui-même, une implémentation comme celle là, largement diffusée et surveillée, vaut mille fois le code que n’importe quel développeur moyen pourrait écrire « dans son garage ».
Mais que ça ne t’empêche pas de tester la validité des paramètres une fois que tu les a extraits avec le module CGI de Perl (pour vérifier que les données correspondent à ce qui est acceptable pour ton application, et ne puissent pas provoquer une faille de sécurité, par exemple XSS ou injection SQL).

ok
de toute façon je fais pas mal d’essais…rien que pour faire joujou