[Vienna-pm] Zusätzlicher Nachtrag zu Escapen von Shellparametern: Fehler oder Feature?

Josef Schmid e9427749 at stud4.tuwien.ac.at
Mon May 5 07:55:54 PDT 2008


Nochmals hi!

Calli schrieb:
> Am Montag, 5. Mai 2008 schrieb Josef Schmid:
>> Leopold Toetsch schrieb:
[...]
>>> S. auch:
>>> $ perldoc perlipc
>>> /Safe Pipe Opens

>> 1.) Es gibt eine Menge von CPAN-Modulen für das saugen von Webseiten.
>>      Ich glaub sogar einiges in den Core-Modulen.
>>      Also ohne curl.
> ja aber auch nach (ein bißchen) cpan-eln, hab ich in den abgefragten 
> headers keine File-Size gefunden - und curl ist ganz einfach :)

Falls nur Webseiten, reicht z.B.:
use LWP::UserAgent;
my $ua=new LWP::UserAgent;
my $size=$ua->head($url)->headers->content_length;

>> 2.) nächster Lösungsansatz: curl kennt die Option --silent
> ok, das hatt ich in man überlesen, das geht.

Mal ehrlich, es wäre doch seltsam das ein Kommandozeilenprogramm
aus dem Unixumfeld, nicht die Möglichkeit bieten würde sich auch
an die Unixphilosophie "Nur eine nicht vorhandene Meldung ist eine gute 
Meldung" zu halten, oder? ;-)


>> 3.) Die Standard-Dateideskriptoren werden an den Kindprozess vererbt.
>>      also nach dem "do {" ein "local
>> *STDERR=IO::File('>','/dev/null');" einfügen, sollte auch helfen.
> das wird dann immer umstädlicher..

Hmm, eine Zeile mehr!
Sprich es ist ideal und es in eine eigene Funktion auszulagern ;-)!
Bzw. 4.) Es gibt diverses Zeugs in CPAN&Core-Modules unter IPC::*


> Frage zu den backticks, bzw system und exec: welches 'schlüsseloch' für 
> Unerwünschte mit Unerwünschtem öffen die auf welche Weise eigentlich?
> Oder anders gefragt, wann und wo würde es damit gefährlich werden?

Ein Bsp. hast Du ja schon bekommen:
   Peter J. Holzer schrieb:
   > Stell Dir vor, das Script, das den URL checkt, ist ein CGI-Script (oder
   > mod_perl, oder suid, oder ...) und fragt den Benutzer nach dem URL. Der
   > Benutzer gibt ein: http://www.example.net; rm -rf /

Ein anderes hatte ich zuvor schon mal erwähnt (Unicode).

Der eigentliche Punkt ist, es kann Dir keiner eine abgeschlossene, 
taxative Liste davon geben. Sprich man kann sich _nie_ sicher sein,
alle Probleme erfasst zu haben.
Während jedoch im Gegenzug etwas was gar nicht vorhanden ist
(weil Du es ja eigentlich eh gar nicht brauchst),
üblicherweise auch keine Probleme (zumindest dieser Art) macht.

pfiateng,
   Josef



More information about the Vienna-pm mailing list