Helmut Weber: Perl-Skripte nur im cgi-bin Verzeichnis?

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

--
-------------------------------------------
Mode ist eine Variable, Stil eine Konstante
  1. 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®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
  2. 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

    1. 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

      --
      -------------------------------------------
      Mode ist eine Variable, Stil eine Konstante
      1. 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.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?

        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