Shir Khan: mittels htaccess Ausführen von php, cgi und Co. verbieten

*prust*

Auf meine HP habe ich einen Bereich in den manche User Dateien hochladen können. Es ist aus verwaltungsgründen nicht möglich das Uploaden von Dateien wie .php3/4 oder cgi/pl möglich. Dies stellt eine Sicherheitslücke da, da mit solchen Files auf meinen gesamten Webspace und die MySQL Datenbank zugegriffen werden könnte.

Meine Frage: Ist es mittels eines HTACCESS Files möglich das ausführen von Dateien mit festlegbaren Endungen zu verhindern??? Das sollte doch gehen. Ein Bild soll weiterhin abrufbar sein, nur solche Skripten eben nicht! Bzw. es wäre sogar besser festlegen zu können welche Art von Files abgrufen werden können und alle anderen eben nicht. Ginge das???

PS: Wenn jemand einen PHP Code in eine TXT steckt und diese an hochlädt und ausführen will, würde der Server das machen????

Shir Khan, the tiger
GVT

  1. Huhu Shir Khan

    generell wäre es vermutlich besser wenn die hochgeladenen Skripte ausser(ober)halb des WebVerzeichnisses gespeichert werden.
    Dann kann auch niemand diese per Browser aufrufen/ starten.

    Wenn Du sie zum download anbieten möchtest brauchst Du dazu nur ein Skript das die gewünschte Datei "durchreicht".

    Viele Grüße

    lulu

    1. *prust*

      was meist Du mit Oberhalb/Außerhanb??
      Folhende Situation: www.test.de/skr
      im unterverzeichnis skr leigen die skirpte, und auf der domain selbst läuft ein Portal, dessen Datein und SQLConfig nicht erreichbar sein soll für die in skr gespeicherten Skripten, aus sicherheitsgründen!

      Shir Khan, the tiger
      GVT

      Huhu Shir Khan

      generell wäre es vermutlich besser wenn die hochgeladenen Skripte ausser(ober)halb des WebVerzeichnisses gespeichert werden.
      Dann kann auch niemand diese per Browser aufrufen/ starten.

      Wenn Du sie zum download anbieten möchtest brauchst Du dazu nur ein Skript das die gewünschte Datei "durchreicht".

      Viele Grüße

      lulu

      1. Hallo Shir Khan

        was meist Du mit Oberhalb/Außerhanb??

        bei einem vernünftigen Hoster kann man das Web-Verzeichnis festlegen bzw. es liegt eine Ebene unter dem Verzeichnis auf das Du per FTP gelangst.

        Also z.B.:

        /home/userxyz/htdocs/               das wäre z.B. Dein FTP-Root
        /home/userxyz/htdocs/web/           das wäre z.B. das Web-Root
        /home/userxyz/htdocs/userupload/    das könnte z.B. das upload-Dir sein

        Viele Grüße

        lulu

        1. *prust*
          Leider hab ich nicht diese Möglichekeit :(. Nicht in meinem Webhostingpacket. Aber ich hatte ne abere Idee, bekommt htaccess es auch gerafft, das was in der Datei steht nur für Unterverzeichnisse gilt??? (und nicht für das Verzeichnis selbst)!

          Shir Khan, the tiger
          GVT

          Hallo Shir Khan

          was meist Du mit Oberhalb/Außerhanb??

          bei einem vernünftigen Hoster kann man das Web-Verzeichnis festlegen bzw. es liegt eine Ebene unter dem Verzeichnis auf das Du per FTP gelangst.

          Also z.B.:

          /home/userxyz/htdocs/               das wäre z.B. Dein FTP-Root
          /home/userxyz/htdocs/web/           das wäre z.B. das Web-Root
          /home/userxyz/htdocs/userupload/    das könnte z.B. das upload-Dir sein

          Viele Grüße

          lulu

          1. Holla

            Aber ich hatte ne abere Idee, bekommt htaccess es auch gerafft, das was in der Datei steht nur für Unterverzeichnisse gilt??? (und nicht für das Verzeichnis selbst)!

            was spricht dagegen die htaccess in eben dieses Unterverzeichnis zu legen, bzw. wenn es sehr viele Unterverzeichnisse sind noch eine weitere Verzeichnisebene einzufügen?

            so far ...

            lulu

            1. Naja, jeder User kann mit einem PHP Skript sein Verzeichnis bearbeiten. Und er kann auch die HTACCESS Datei dort drin sehen und bearbeiten/löshen (also kein schutz). Ein Verzeichnis höher liegt das Anzeigeskript das nicht blockiert werden darf.

              Noch eine Verzeichnisebene, wäre ne Lösung, aber es sind schon viele Verlinkungen geschaltet, so das dies zu aufwendig wäre. Das Skipt so zu modifizieren, daß es alles mit . am Anfrang ingnoriert wäre Sysiphusarbeit.

              PS: wenn man PHP Code in TXT Versteckt, parst das der Server?? Doch wohl hoffentlich nicht!

              Shir Khan, the tiger
              GVT

              Holla

              Aber ich hatte ne abere Idee, bekommt htaccess es auch gerafft, das was in der Datei steht nur für Unterverzeichnisse gilt??? (und nicht für das Verzeichnis selbst)!

              was spricht dagegen die htaccess in eben dieses Unterverzeichnis zu legen, bzw. wenn es sehr viele Unterverzeichnisse sind noch eine weitere Verzeichnisebene einzufügen?

              so far ...

              lulu

              1. Huhu

                Das Skipt so zu modifizieren, daß es alles mit . am Anfrang ingnoriert wäre Sysiphusarbeit.

                Wirklich? Das dürfte doch höchstens ein 1-2 Zeiler sein?

                PS: wenn man PHP Code in TXT Versteckt, parst das der Server?? Doch wohl hoffentlich nicht!

                I.d.R. nicht, aber man könnte es natürlich so konfigurieren.
                Vor allem wenn User eine .htaccess-Datei schreiben können/ dürfen.

                so far ...

                lulu

  2. Hi,

    Es ist aus verwaltungsgründen nicht möglich das Uploaden von Dateien
    wie .php3/4 oder cgi/pl möglich.

    dann taugt Dein Uploader nichts.

    Dies stellt eine Sicherheitslücke da, da mit solchen Files auf meinen
    gesamten Webspace und die MySQL Datenbank zugegriffen werden könnte.

    Wie ist Dein Webspace konfiguriert?

    Ich verwende kein PHP, glaube mich aber zu erinnern, daß der Interpreter
    normalerweise über eine Verknüpfung zwischen Datei-Endung und Apache-
    Handler (hier: dem PHP-Modul) vorgenommen wird ("AddHandler").

    Falls dies bei Dir der Fall ist, kannst Du diese Verknüpfung für Deine
    Upload-Verzeichnisse separat _aufheben_, indem Du mit einem _weiteren_
    "Addhandler" (in der .htaccess des Upload-Verzeichnisses) einfach einen
    Handler an diese Endung bindest, der _nicht_ der PHP-Handler ist.
    Da Du mit spezielleren .htaccess-Definitionen allgemeinere httpd.conf-
    Definitionen überschreibst, funktioniert das.

    Der hierfür wahrscheinlich geeignetste Handler ist derjenige, der den
    Inhalt der PHP-Datei einfach an den Browser ausliefert (etwas Hochge-
    ladenes kann man dann auch wieder herunterladen) - in diesem Falle heißt
    der (in Apache vordefinierte) Handler dann einfach "default-handler".

    Du kannst aber auch einen eigenen Handler schreiben (beispielsweise
    ein CGI-Skript - ob es sogar mit PHP geht, weiß ich nicht) und den
    Versuch, ein hochgeladenes PHP-Skript via HTTP anzusprechen, mit einer
    beliebigen, von Dir programmierten Reaktion honorieren ... Deiner
    Kreativität sind keine Grenzen gesetzt.

    Lesetip zu Apache-Handlern:
            http://httpd.apache.org/docs/handler.html

    Viele Grüße
          Michael

  3. Hi,
    Ich hätte den Vorschlag, das einfach mit CHMOD unausführbar zu machen oder? (DA ich denke das ein Webhoster Space auf einem Unix, linux uä System anbietet)

    mfg Andres