Oui, vous avez une dépendance non sécurisée dans le système lors de l'exécution avec le commutateur -T. : p
Vous exécutez votre script en mode Taintperl, et appelez un programme externe (avec sudo, pas moins) avec des données basées sur les informations transmises par l'utilisateur (qui pourraient être corrompues). Si vous êtes vraiment assurez-vous que la sortie est valide et ne pose aucun risque, vous devez le désamorcer: consultez la documentation officielle sur laundering tainted data.
Vous devez être vraiment prudent lors de l'exécution des programmes externes ou d'effectuer des opérations de système à partir d'un CGI - par exemple, pensez à ce qui pourrait arriver si vous entrez `rm -rf /`
comme entrée utilisateur. Il y a beaucoup d'informations au perldoc perlsec pour vous aider à démarrer, mais plusieurs livres ont également été écrits sur l'écriture de code sécurisé.
Oui, je l'ai fait. Mais ce n'est pas suffisant. Il y a quelques variables que j'ai passées à la ligne de commande d'iptables. Vous devez utiliser le mappage regex pour dénouer ces variables. Par exemple. if ($ port = ~/([0-9] +)) {$ port = $ 1;} else {die "numéro de port invalide";}. Après avoir défait toutes les variables, je peux le faire fonctionner –