J'ai le code suivant, mais je pense que j'ai besoin de désinfecter les variables d'env, mais je ne sais pas exactement comment je devrais les aseptiser. Je réalise qu'il y a probablement une limite à ce que je peux les désinfecter, mais que puis-je faire?Comment désinfecter les variables d'environnement EDITOR, etc.
#!/usr/bin/perl
use 5.012;
use warnings;
use autodie;
use Env qw(EDITOR VISUAL);
use File::Temp qw(:seekable);
my $editor = '/usr/bin/nano';
if ($VISUAL) {
$editor = $VISUAL;
}
elsif ($EDITOR) {
$editor = $EDITOR;
} else {
warn 'set VISUAL and EDITOR env variables not set falling back to nano'
. "\n";
}
my $tmpf = File::Temp->new;
system $editor, $tmpf->filename;
open $tmpf, '<', $tmpf->filename;
print while (<$tmpf>);
Jetez un coup d'œil à [perlsec] (http://perldoc.perl.org/perlsec.html) qui vous renseigne sur le mode "Taint". Le mode d'altération marquera comme corrompu toutes les données provenant de l'environnement en dehors de votre programme. Les données corrompues ne peuvent pas être réécrites dans l'environnement sans être nettoyées. Par exemple, que se passerait-il si "EDITOR" était réglé sur "rm -rf/& #"? –