Perl-Skripte nur im cgi-bin Verzeichnis?
Helmut Weber
- cgi
0 fastix®0 rolfrost0 Helmut Weber0 rolfrost
Hallo SelfForum,
in meinen meisten Projekten kommen statische und dynamische (generiert mit Perl) HTML-Seiten vor.
Es hat sich ja eingebürgert, das CGI-Skripte im cgi-bin-Verzeichnis abgelegt werden. Welche Vor- oder Nachteile hat diese Vorgehensweise?
Ich würde gerne meine Skripte auch direkt im root-Verzeichnis ablegen. Birgt das ein Sicherheitsrisiko?
Gruß
Helmut Weber
Moin!
Es hat sich ja eingebürgert, das CGI-Skripte im cgi-bin-Verzeichnis abgelegt werden. Welche Vor- oder Nachteile hat diese Vorgehensweise?
Ein Administrator hat es dann einfacher: Er erlaubt das Ausführen von CGI nur im /cgi-bin/ und kann dort alle Skripte finden und durchsehen. Und/Oder er hat auch als einziger Schreibrechte im Verzeichnis: Die Benutzer können keine (womöglich) "schädlichen" Skripte selbst installieren.
Es handelt sich also um eine administrative Maßnahme, die Multiuserumgebungen gerecht wird.
Ich würde gerne meine Skripte auch direkt im root-Verzeichnis ablegen. Birgt das ein Sicherheitsrisiko?
Jein. Man denke daran, das Perl zum Beispiel sehr mächtig ist. Wer also auf seinem Webserver den Benutzern nicht trauen möchte oder DARF, der mache dies so.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
hi Helmut,
in meinen meisten Projekten kommen statische und dynamische (generiert mit Perl) HTML-Seiten vor.
Es hat sich ja eingebürgert, das CGI-Skripte im cgi-bin-Verzeichnis abgelegt werden. Welche Vor- oder Nachteile hat diese Vorgehensweise?
Es sorgt für Ordnung. Ein Apache kann zwar so konfiguriert werden dass CGIs auch in jedem anderern Verzeichnis ausgeführt werden können, aber ich selbst bevorzuge den ScriptAlias:
ScriptAlias /cgi-bin/ /home/.../cgi-bin/ # hier dürfen alle...
ScriptAlias /cgi-hlp/ /home/.../cgi-hlp/ # Hilfe CGIs
ScriptAlias /cgi-usr/ /.../cgi-usr/ # hier ist eine .htaccess
Ich würde gerne meine Skripte auch direkt im root-Verzeichnis ablegen. Birgt das ein Sicherheitsrisiko?
Generell nicht. Aber wenn deine Scripts auf das Dateisystem zugreifen sollen und sich noch anderer User auf dem System tummeln ist SuExec (Apache) empfohlen.
Viele Grüße, Rolf
Hallo Rolf,
Es sorgt für Ordnung. Ein Apache kann zwar so konfiguriert werden dass CGIs auch in jedem anderern Verzeichnis ausgeführt werden können, aber ich selbst bevorzuge den ScriptAlias:
ScriptAlias /cgi-bin/ /home/.../cgi-bin/ # hier dürfen alle...
ScriptAlias /cgi-hlp/ /home/.../cgi-hlp/ # Hilfe CGIs
ScriptAlias /cgi-usr/ /.../cgi-usr/ # hier ist eine .htaccess
Genau in der Apache-Konfiguration habe ich ein Problem:
Ich habe also ein Projekt, in dem statische und dynamische Seiten vorkommen.
Mein Apache ist wie folgt konfiguriert:
DocumentRoot /home.../web/
ScriptAlias /cgi-bin/ /home/.../web/cgi-bin/
DocumentIndex index.html
Wenn ich jetzt auch die Startseite dynamisch erzeugen möchte, mache ich immer in die index.html nur eine Meta-Weiterleitung auf die Datei /cgi-bin/index.pl. Diese Weiterleitung möchte ich aber vermeiden. Wenn die URL www.example.org heist, möchte ich direkt die Datei /cgi-bin/index.pl aufrufen
Ich habe den DocumentIndex auch schon auf /cgi-bin/index.pl gelegt, hat aber nicht wie gewünscht funktioniert.
Wie gehst Du in solchen Fällen vor?
Ich vermute auch, das Google solche Seiten, die mit einem Meta-Refresh arbeiten aus seinem Index rauswirft. Das möchte ich natürlich auf keinen Fall!
Gruß
Helmut Weber
Hallo Helmut,
Genau in der Apache-Konfiguration habe ich ein Problem:
Ich habe also ein Projekt, in dem statische und dynamische Seiten vorkommen.
Mein Apache ist wie folgt konfiguriert:
DocumentRoot /home.../web/
ScriptAlias /cgi-bin/ /home/.../web/cgi-bin/
DocumentIndex index.htmlWenn ich jetzt auch die Startseite dynamisch erzeugen möchte, mache ich immer in die index.html nur eine Meta-Weiterleitung auf die Datei /cgi-bin/index.pl. Diese Weiterleitung möchte ich aber vermeiden. Wenn die URL www.example.org heist, möchte ich direkt die Datei /cgi-bin/index.pl aufrufen
Ich habe den DocumentIndex auch schon auf /cgi-bin/index.pl gelegt, hat aber nicht wie gewünscht funktioniert.
Wie gehst Du in solchen Fällen vor?
Ganz einfach: .htaccess
DirectoryIndex /cgi-bin/index.cgi
ouh, jetzt seh ich den Fehler bei dir
DirectoryIndex <=> DocumentIndex
--> also du kannst das auch in die httpd.conf so eintragen ;-)
Ich vermute auch, das Google solche Seiten, die mit einem Meta-Refresh arbeiten aus seinem Index rauswirft. Das möchte ich natürlich auf keinen Fall!
Google indiziert auch Seiten die ein CGI dynamisch erstellt. Allerdings bin ich mir da auch nicht ganz im Klaren wie tief... bei meiner Site ists derzeit so, dass nur die *erste Ebene* indiziert wird, vielleicht ists auch ne Frage der Zeit.
Viele Grüße, Rolf