[Vienna-pm] Escapen von Shellparametern
Josef Schmid
e9427749 at stud4.tuwien.ac.at
Mon Apr 28 09:20:34 PDT 2008
Stefan Weiss schrieb:
> @ Gerfried Fuchs und quotemeta:
> Stimmt natürlich. Ich lasse allerdings mehr Zeichen durch als quotemeta
> (zB ./+-), u.a. damit das Logfile leserlicher wird.
>
> Die Frage ist halt, ob ich damit sicher genug bin.
1) Hmm, ich würde es als Array system() oder open() übergeben,
und den *String nur für's Log konstruieren*.
Besser es ist gar keine Shell dazwischen!
-> Kann dorthin ¬ ausgebrochen werden.
-> unabhängiger von OS
2) quotemeta ist für RE gedacht, müsste man sich durchdenken.
ala ´´ etc. Adererseits alles mit '' einschliessen, dann
reicht vielleicht schon "'" => "\'"
Zumindest ihmo ein besserer Ansatz, wenn schon so sein muss,
wo ich aber bei deinem Bsp. überhaupt keine Notwendigkeit seh.
3) Offensichtlich handelt es sich bei $from und $num
um speziellere Datentypen, deshalb sollte auch eingeschränkter
geprüft werden: z.B. $num nur erlaubt wenn !/\D/
Möglicherweise gefällt Dir eins der unzähligen Validierungs-
module auf CPAN.
4) wenn schon unsicher, dann so dass man jemand anderen die
Schuld zuschieben kann. ;-)
use Shell;
pfiateng,
Josef
More information about the Vienna-pm
mailing list