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

haj
 2020-01-16 01:24
#191129 #191129
User since
2015-01-07
521 Artikel
BenutzerIn

user image
Das ist beim Webserver spezifiziert, wie er die Skripte startet. Bei Apache mit mod_cgi oder mod_cgid bleibt @ARGV leer. Bei persistenten Perl-Webanwendungen startet der Webserver gar keine Prozesse, die Details unterscheiden sich zwischen den Implementierungen: Mit FastCGI läuft die Anwendung in einem eigenen Server, an die der Webserver die Requests über Sockets oder ähnliches weitergibt, bei Apache mit mod_perl oder CPAN:PSGI sind Anwendung und Webserver das gleiche Ding.

Aber "Sicherheit" ist da ein hohes Wort: Ein Programm, das vom Webserver aufgerufen wird, kann mit Perldoc:perlfunc system und ähnlichen Funktionen andere Skripte starten und dafür Parameter übergeben, die bei Perl-Skripten dann in @ARGV landen. Das ist bei Web-Interfaces, die über ein bestehendes CLI drübergestülpt werden, ein ganz gängiges Verfahren.

Das übliche Verfahren, Prozesse als CGI-Prozesse "vom Webserver" zu erkennen, ist die Abfrage der Umgebungsvariablen GATEWAY_INTERFACE. Umgebungsvariablen bleiben ja erhalten, wenn die Anwendung ihrerseits Skripte startet. Aber auch hier hängt's vom Server ab: bei PSGI gibt es die Umgebungsvariable nicht.

Wo liegt denn Dein Risiko / Problem?

View full thread Sicherheit von @ARGV