OVH Cloud OVH Cloud

perl et mode taint (-T)

3 réponses
Avatar
Utilisateur_anonyme_et_non_membre_de_webatou.net
bonjour,

Je suis en train de modifier plusieurs pgms pour les mettre en mode -T
J'ai presque réussi à modifier tous les pgms sauf 2 ;o((

J'ai eu beaucoup de Insecure $ENV{PATH} et Insecure dependency....

Dans un des pgms, j'ai ces lignes...

open (FAX, "/usr/bin/faxspool $mailto $coverpage $to_name $from_name $fax
$memo $files 2>&1 |") || errormessage("$libel_cant_export $!<p>\n");
print "<pre>\n";
while( <FAX> )
{
print $_;
}
close FAX;

=>
Insecure $ENV{PATH} while running with -T switch at
/home/..../fax-voice1/cgi-bin/fax/faxsend.cgi line 414.

J'ai regardé les faqs... parcouru google dans tous les sens et fais plein
d'essai...

Dans le path :
/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin

Si quelqu'un pouvait me mettre sur la voix...
Le pgm appellé "/usr/bin/faxspool" est un bash


Le 2ème pgm :

Je veux transformer des ligne de ce style :
system ("$g3topbm -f $fax_directory/$sfilename | $pnmtops >
$webtmpabs/$$.f.$tfilename.ps");

cela correspond à :
/usr/bin/g3topbm -f /var/spool/fax/outgoing/F000041/f1.g3 |
/usr/bin/pnmtops
> /home/e-smith/files/ibays/fax-voice1/html/fax/tmp/2620.f.F000041.1.ps

Merci pour votre aide
anne

--
Posté via http://www.webatou.net/
Usenet dans votre navigateur !
Complaints-To: abuse@webatou.net

3 réponses

Avatar
ecureuil
"Anonyme de Webatou.net"
a écrit dans
le message de news:
| bonjour,
|
| Je suis en train de modifier plusieurs pgms pour les mettre en mode -T
| J'ai presque réussi à modifier tous les pgms sauf 2 ;o((
|
| J'ai eu beaucoup de Insecure $ENV{PATH} et Insecure dependency....
|
| Dans un des pgms, j'ai ces lignes...
|
| open (FAX, "/usr/bin/faxspool $mailto $coverpage $to_name $from_name $fax
| $memo $files 2>&1 |") || errormessage("$libel_cant_export $!<p>n");
| print "<pre>n";
| while( <FAX> )
| {
| print $_;
| }
| close FAX;
|
| =>
| Insecure $ENV{PATH} while running with -T switch at
| /home/..../fax-voice1/cgi-bin/fax/faxsend.cgi line 414.
|
| J'ai regardé les faqs... parcouru google dans tous les sens et fais plein
| d'essai...
|
| Dans le path :
| /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
|
| Si quelqu'un pouvait me mettre sur la voix...
| Le pgm appellé "/usr/bin/faxspool" est un bash
|

Cela fonctionne sur 3 pattes...

open (FAX, ,"-| 2>&1 ") or exec "$faxspool", "$mailto_d", "$mailto",
"$coverpage_d", "$coverpage", "$to_name_d", "$to_name", "$from_name_d",
"$from_name", "$fax", "$memo", "$files" ||
errormessage("$libel_cant_export $!<p>n");

usr/bin/faxspool -f "faxeur" -C - -D "mme xxx" -F "ddda" 1111
/tmp/message2501.txt /home/.../fax-voice1/html/fax/faxsend/CVAAM1.pdf

Pour que cela fonctionne j'ai mis tous les paramètres...
-f faxeur ($mailto_d $mailto) correspond à l'adresse mail où je veux un
accusé de réception...
Si je ne mets pas d'adresse mail, je me retrouve avec des blancs comme
paramètres et le pgm faxspool n'apprécie pas du tout... Ce pgm n'est pas le
mieux, je ne fais que l'utiliser...

A part 2 paramètres, tous les autres sont optionnels...

Les messages provenant de faxspool se mettaient ligne/ligne, maintenant ils
sont tous les uns derrière les autres ce qui donnet quelque chose
d'incompréhensible à l'écran!

Le close ne se fait pas..., ni l'affichage du bouton "retour au menu
principal", ni le unlink!
la fin du pgm après l'open :

print "<pre>n";
while( <FAX> )
{
print $_;
}
close FAX;

print <<EOF;
</pre>

<hr size="5">
<a href="$indexpage">$ret_menu_princip</a>
</body>
</html>
EOF

unlink ($memo);
}

exit 0

Je débute en perl... dur, dur les débuts en perl pour sécuriser les pgms!

Merci pour votre aide
anne
Avatar
Paul Gaborit
À (at) 20 Dec 2004 21:24:42 GMT,
(Anonyme de
Webatou.net) écrivait (wrote):
Je suis en train de modifier plusieurs pgms pour les mettre en mode -T
J'ai presque réussi à modifier tous les pgms sauf 2 ;o((

J'ai eu beaucoup de Insecure $ENV{PATH} et Insecure dependency....


L'un des principes à respecter pour assurer facilement un minimum de sécurité
est de ne jamais passer par le shell pour exécuter un programme externe en lui
passant des arguments.

Conséquences : on ne peut pas utiliser les backquotes (``). Il faut utiliser
'system' ou 'exec' dans leur syntaxe à n arguments. De même pour open qui doit
utiliser n (>=3) arguments (si la version de Perl de le permet) ou alors on
fait soi-même le fork/exec et dans ce cas, il faut lire 'perlipc' qui donne
plein de bonnes astuces.

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
ecureuil
"Paul Gaborit" a écrit dans le message de
news:
|
| À (at) 20 Dec 2004 21:24:42 GMT,
| (Anonyme de
| Webatou.net) écrivait (wrote):
| > Je suis en train de modifier plusieurs pgms pour les mettre en mode -T
| > J'ai presque réussi à modifier tous les pgms sauf 2 ;o((
| >
| > J'ai eu beaucoup de Insecure $ENV{PATH} et Insecure dependency....
|
| L'un des principes à respecter pour assurer facilement un minimum de
sécurité
| est de ne jamais passer par le shell pour exécuter un programme externe en
lui
| passant des arguments.
|
| Conséquences : on ne peut pas utiliser les backquotes (``). Il faut
utiliser
| 'system' ou 'exec' dans leur syntaxe à n arguments. De même pour open qui
doit
| utiliser n (>=3) arguments (si la version de Perl de le permet) ou alors
on
| fait soi-même le fork/exec et dans ce cas, il faut lire 'perlipc' qui
donne
| plein de bonnes astuces.
|

J'ai lu et je n'arrive toujours pas à obtenir ce que je veux ;o((

J'ai un autre pgm et je n'arrive pas à formater la cde pour quelle passe
avec le mode taint
C'est une cde qui transforme un fichier image fax en ps...
Les cdes qui fonctionnent sans le mode taint ont des pipe (|) et créent un
fichier en sortie

cde1 img.g3 | cde2 > img.ps
J'ai essayé de décomposer la cde en 2 cde
cde1 img.g3 > img.pbm # création de l'image en pbm
cde2 img.pbm > img.ps # création de l'image en ps

Si on pouvait me mettre sur une piste avec des exemples...
Comment utiliser les | avec le mode taint et comment créer un fichier en
sortie...

anne