Die #exec-Direktive

Mit Hilfe der #exec-Direktive kann man auf dem Server beliebige Programme ausführen lassen, sofern dies nicht vom Administrator mit der Option IncludesNoExec in der httpd.conf unterbunden wurde ;-) Da HTML sich nicht um das sorgfältige Tabellenlayout der UNIX-Befehle kümmert, empfiehlt es sich, ein <pre>-Tag um die SSI-Anweisung herum zu setzen.

Die folgende Anweisung gibt die aktuelle Belegung der Festplattenpartitionen aus:

<pre><!--#exec cmd="df" --></pre>

Ergebnis:*


Attribute

Es gibt zwei mögliche Attribute für die #exec-Direktive:

cmd="Programmname"
Das Programm wird einer Shell (/bin/sh) zur Ausführung übergeben.
cgi="Skriptname"
Das angegebene Skript wird vom Webserver als CGI-Skript ausgeführt, vorausgesetzt die Konfiguration des Webservers läßt die Ausführung eines Skripts an der Stelle zu (die httpd.conf-Direktiven SkriptAlias bzw. Options ExecCGI müssen für das Verzeichnis, in dem das Skript liegt, gesetzt sein). Der Skriptname kann auch eine URL-codierte Pfadangabe enthalten.

Sicherheitshinweis

Mit der #exec-Anweisung sind Sicherheitsrisiken verbunden, da beliebige Programme aufgerufen werden können, die wiederum auf das gesamte Dateisystem des Servers zugreifen können und nicht durch die Konfiguration des Webservers eingeschränkt sind. Eine vernüftige Vergabe der Berechtigungen und eine verantwortungsbewußte Auswahl der Programme vorausgesetzt ist die #exec-Direktive sicher und sinnvoll einsetzbar, trotzdem wird sie von vielen Systemverwaltern deaktiviert. Unter keinen Umständen sollte man beliebige Benutzereingaben an die #exec-Direktive weitergeben!

*: Falls Sie keine Ausgabe sehen, liegt das daran, daß der Server die #exec-Direktive (sinnvollerweise) deaktiviert ist (s. Sicherheitshinweis!).


© 2001 by Dr. Roland Hilkenbach, Stand der Dinge: