[Perl] Le répertoire courant n'est plus dans @INC ?
Sébastien Aperghis-Tramoni
sebastien at aperghis.net
Lun 8 Mai 00:20:06 CEST 2017
Sylvain Lhullier wrote :
> Bonjour,
>
> Suite à la mise à jour de mes systèmes vers Ubuntu 17.04, je suis
> passé en Perl v5.24.1.
> Et j'ai remarqué que @INC ne contient plus '.' (le répertoire
> courant) par défaut.
>
> J'ai noté que le fichier /etc/perl/sitecustomize.pl contient
> pop @INC if $INC[-1] eq '.' and !$ENV{PERL_USE_UNSAFE_INC};
> (si je commente cette ligne, perl fonctionne comme avant avec '.'
> dans @INC)
>
> Est-ce une volonté côté Perl ? côté Debian/Ubuntu ?
>
> En attendant d'en savoir plus, j'ai ajouté
> BEGIN { push @INC, '.' }
> dans mes programmes pour utiliser mes modules
> plutôt qu'un PERL_USE_UNSAFE_INC=1 ./prog.pl
> ou que de modifier le système.
>
> Avez-vous constaté cela dans vos systèmes (récents) ?
C'est une décision côté Perl, pour « sécuriser » @INC. On est
quelques uns à trouver que c'est un peu stupide, vu que cela
reste hyper simple d'attaquer par injection de faux modules
dans @INC. Ceci dit, dépendre de la présence de "." dans @INC
est aussi une mauvaise pratique.
--
Sébastien Aperghis-Tramoni
Close the world, txEn eht nepO.
Plus d'informations sur la liste de diffusion Perl