Michael Schröpl: Warum CGI-BIN?

Beitrag lesen

Ein CGI-Skript laesst sich auf meinem (virtuellen) Server (Apache) sowohl im CGI-BIN-Verzeichnis, wie auch im root, also www.domain.de, ausfuehren.

Wenn Du die - in dieser Hinsicht "faulen" - Standardeinstellungen des Apache verwendest, dann ja.
Wenn man es sich einfach macht, dann läßt man CGI-Anwendungen in jedem Verzeichnis ausführen und identifiziert sie über die Datei-Endung. Apache erlaubt so etwas und schaltet *.cgi standardmäßig auf "CGI-Anwendung". Well man andere Endungen haben, dann muß man diese definieren (z. B. *.pl für Perl-Skripts, bei denen man der Datei ansehen können will, was drin steht, usw.).

Solange Du auf Deinem Server alleine bist, ist es auch relativ egal, wie CGI-Skripts ausgeführt werden. Aber schon wenn Du anfängst, Fremdsoftware zu installieren, die mit CGI läuft (etwa ein Diskussionsboard), dann will diese vielleicht irgendwelche anderen Einstellungen. Und wenn Du diese dann herstellst, läuft vielleicht irgendwas von Deinem eigenen Kram nicht mehr ...

Da ist es schon sicherer, CGI-Anwendungen nur in einem entsprechenden Teilbaum aktivieren zu lassen.

Ich selbst habe das bei uns im Intranet noch feiner geregelt: Ich habe in der Webserver-Konfiguration für jede CGI-Anwendung einen eigenen Definitionsabschnitt, welcher genau regelt, was in dem entsprechenden Verzeichnisbaum erlaubt ist und was nicht. So darf bei mir keineswegs jede CGI-Anwendung dasselbe wie jede andere, und es darf auch nicht dieselbe Benutzermenge darauf zugreifen.

Durch die INCLUDE-Anweisung des Apache-Webservers kann ich jede einzelne anwendungssspezifische Teilkonfiguration in eine eigene Datei auslagern und weiß genau, welche Anwendung welche Einstellungen verursacht hat. Steige ich auf eine neue Webserver-Version um, dann muß ich lediglich
den Abschnitt der INCLUDE-Anweisungen in die Konfigurationsdatei hineinkopieren. (Und da das sogar mehrstufig geht, reicht es, eine einzige Anweisung "include local.conf" einzufügen, welche Datei dann die include-Anweisungen für meine installierten Erweiterungen enthalten).

Das ist natürlich die aufwendigere Methode - aber bei geeigneter Anwendung der vorhandenen Möglichkeiten verliert man gerade dadurch nicht den Überblick.

Gibt es da irgendwelche Unterschiede bez. Geschwindigkeit, Sicherheit usw.?

Geschwindigkeit: wohl kaum.

Sicherheit: Je klarer das Berechtigungskonzept ist, um so leichter kann man es auf eventuelle Lücken prüfen. Das größte Sicherheitsrisiko ist meiner Meinung nach immer noch der Webmaster selbst.

Koennte ich problemlos ein www.domain.de/index.cgi ausfuehren, das im Vergleich haargenau so arbeitet, wie ein www.domain.de/cgi-bin/index.cgi?

Wenn die entsprechenden Einstellungen vorhanden sind, dann ja. Einige Firmen tun das ja auch - da wird man gleich auf der Wurzel-URL mit einer CGI- oder ASP-Anwendung begrüßt.