[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