[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