Thread Sicherheit von @ARGV (43 answers)
Opened by bianca at 2020-01-15 18:01

haj
 2020-01-23 10:38
#191190 #191190
User since
2015-01-07
521 Artikel
BenutzerIn

user image
2020-01-23T07:30:42 rosti
Und noch etwas: Der Taintmodus -T warnt nicht, wenn $ENV{QUERY_STRING} im Script verwendet wird und warnt nicht bei der Verwendung von @ARGV und warnt auch nicht bei der Verwendung von ARGV. Siehe mein Beispiel.

Bei bloßer Verwendung verdorbener Variablen warnt der Modus nicht. Wenn er das täte, dann könnte man sie nicht einmal ohne Warnung "reinigen". Er warnt nicht, wenn Du aus einem verdorbenen Pfadnamen einliest, und er warnt nicht, wenn Du verdorbene Daten druckst. Er mault allerdings, wenn Du einen verdorbenen Pfadnamen zum Schreiben öffnest oder Code aus verdorbenen Pfaden ausführen willst.

Nebenbei: Die Liste der Dinge, die der Taint-Modus nicht macht, ist ziemlich lang, Du brauchst nicht jedes Mal einen neuen Artikel dazu schreiben.

2020-01-23T07:30:42 rosti
Und wenn man bei einem CGI-Script die Warnungen nicht in den Status einer Exception erhebt so daß sie einen 500er hervorrufen, bekommt man sie nur mit wenn man zufällig mal ins Errorlog schaut.

MFG

Als Betreiber eines Webservers nur "zufällig" ins Errorlog zu schauen, ist grob fahrlässig. 500er bemerkt zunächst nur der, der die Seite aufruft, auf Serverseite landen auch die im Errorlog.

Ansonsten magst Du vielleicht Deine Beispiele und die Dokumentation Perldoc:perlrun noch einmal genau anschauen. In beiden Beispielen verwendest Du als Schalter -t und nicht -T. -t warnt, -T stirbt.

View full thread Sicherheit von @ARGV