Re: perlsec à l'aide

Page principale

Répondre à ce message
Auteur: anne aublanc
Date:  
À: guilde
Sujet: Re: perlsec à l'aide

----- Original Message -----
From: "Yves Martin" <ymartin59@???>
To: <guilde@???>
Sent: Tuesday, January 25, 2005 9:50 AM
Subject: Re: perlsec à l'aide


| Selon anne aublanc <anne.aublanc@???>:

|
| > Bonjour,
| >
| > J'essaie de mettre tous mes pgms perl avec l'option -T.
| >
| > dans perlsec :
| > open(FOO,"echo $arg|");     # Pas Ok, mais...
| > open(FOO,"-|")  or exec 'echo', $arg;   # Ok
| >
| > J'ai une ligne du style
| > open(FOO,"$cde $arg 2>&1 |");   #  cde 1
| >
| > Je n'arrive pas à la transformer en
| > open(FOO,"-|")  or exec $cde, $arg;
| > Je ne sais pas où mettre le 2>&1

|
| Si je lis 'man perlsec', je trouve déjà les exemples qui ne passent pas:
|   open(FOO,"echo $arg|");     # Not OK
|   open(FOO,"-|")
|     or exec 'echo', $arg;   # Also not OK
|   $shout = `echo $arg`;       # Insecure, $shout now tainted

|
| Bref, je ne vois pas comment tu pourrais exécuter une commande sans
| tomber dans un de ces cas.
| Si tu regarde 'man perlsec', tu trouveras un exemple assez complexe
| (rechercher 'KID') avec un fork et suppression des privilèges
| pour le 'exec'... Peut-être cela t'aiderait ?

|

Edgar avait bien raison, je me suis emm. pour rien...
et je n'avais pas tout compris du perlsec!

Il suffisait de rendre propre les variables et le PATH!

Merci!
Maintenant je sais rendre propre une variable!
unless ($arg =~ /^(\w+)$/) { die "Argument non conforme\n"; }
$arg = $1;

Bon j'ai un peu modifié l'expression régulière pour qu'il accepte les / et
les . du chemin des fichiers
unless ($g3topbm =~ /^([-\/\w\.]+)$/) { die "Argument g3topbm $g3topbm non
conforme\n"; }
$g3topbm = $1;

Les cdes passent nickel... que ce soit avec system, exec...

et je mets bien perl -wT. (le w permet de voir certaines choses aussi!)
Maintenant je m'attaque au "use strict"
Après il me reste la prog objet avec perl...

Tout les essais m'ont permis d'apprendre plein de choses...
Par contre, je n'ai pas réussi à utiliser open2 ou open3...y- certainement
un truc que j'ai mal interprété

anne