sirmark: Verzeichnis schützen

Hallo!

Habe gerade ein Projekt fertiggestellt. Aus zwei Unterordnern ziehe ich zum Einen Images, aus dem anderen PHP-Module. Beide Ordner sollen eigentlich nicht mit dem Browser erreichbar sein. Welches ist wohl der bessere Weg: .htaccess oder ein chmod im jeweiligen Ordner? Bei chmod, welche Rechte würdet ihr dem Ordner geben?

Gruß

  1. Moin Moin !

    .htaccess. Mit chmod kannst Du nur Deinen Webserver aussperren. Der Browser sieht ohnehin nur Resourcen, keine Ordner. HTTP ist nicht FTP.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Ich weiss, es ist nicht gerade Eure Art, einen Syntax jemanden zu verraten, doch mit etwas nicht ganz klar. Aufgrund Eurer Hinweise möchte ich das Anzeigen des Verzeichnisses via .htaccess und Option/Indexes verhindern. Nur wie? Schreibe ich einfach in eine .htaccess "Option Indexes None" rein oder was? So ganz ist mir die Handhabung nicht klar ...

      Noch eine zweite Frage: Glücklicherweise habe ich Rootzugriff auf den Webserver: In welches Verzeichnis soll ich meine PHP-Module ablegen, damit sie nicht per http erreichbar sind? Habt Ihr da einen Tipp?

      Gruß und danke!

      1. Hi sirmark,

        Schreibe ich einfach in eine .htaccess "Option Indexes None" rein oder was?

        was genau an http://httpd.apache.org/docs/mod/core.html#options ist Dir nicht klar?

        In welches Verzeichnis soll ich meine PHP-Module ablegen, damit sie nicht per http erreichbar sind?

        In eines, auf welches kein URL abgebildet wird.

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
        1. Danke Michael, aber das sind genau die Antworten, die ich in diesem Forum so liebe!
          Das war´s wohl ...

          Hi sirmark,

          Schreibe ich einfach in eine .htaccess "Option Indexes None" rein oder was?

          was genau an http://httpd.apache.org/docs/mod/core.html#options ist Dir nicht klar?

          In welches Verzeichnis soll ich meine PHP-Module ablegen, damit sie nicht per http erreichbar sind?

          In eines, auf welches kein URL abgebildet wird.

          Viele Grüße
                Michael

          1. Hallo,

            was genau an http://httpd.apache.org/docs/mod/core.html#options ist Dir nicht klar?

            Danke Michael, aber das sind genau die Antworten, die ich in diesem Forum so liebe!

            Ich hoffe, dass du schon verstehst, dass wir dir hier nicht alles vorkauen wollen. Ein bisschen selbermachen ist schon angesagt. Wenn du dich mit der Doku zur options directive beschäftigt hättest, dann wäre deine Frage sicher gezielter ausgefallen.

            Und du musst schon zugeben, dass die Doku nicht schwer zu verstehen ist, oder:

            "option can be set to None, in which case none of the extra features are enabled, or one or more of the following:
            [...]
            Normally, if multiple Options could apply to a directory, then the most specific one is taken complete; the options are not merged. However if all the options on the Options directive are preceded by a + or - symbol, the options are merged. Any options preceded by a + are added to the options currently in force, and any options preceded by a - are removed from the options currently in force."

            Wenn du an diesem Text etwas nicht versthest, dann sag doch bitte einfach _genau_ Bescheid, wo dein Verständnisproblem liegt. Dann wird man dir auch gerne weiterhelfen.
            Aber wenn dein Verhalten den anderen nicht zeigt, dass du es zumindest selbst probiert hast, dann musst du eben mit solchen Antworten wie der von Michael rechnen. Und seine Antwort war wirklich nicht unfreundlich.

            Viele Grüße,

            Stefan

            --
            Lass dir das Tanzen NICHT verbieten
            http://tanzverbot.de
          2. Hi sirmark,

            Danke Michael, aber das sind genau die Antworten, die ich in diesem Forum so liebe!

            gern geschehen. Ich helfe, wo ich kann.

            Viele Grüße
                  Michael

            --
            T'Pol: I apologize if I acted inappropriately.
            V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
            (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
            Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  2. Hi sirmark,

    Aus zwei Unterordnern ziehe ich zum Einen Images

    ... wer "zieht"? Dein Programm mit Dateizugriff, oder der Browser mit HTTP-Zugriff?

    aus dem anderen PHP-Module.

    Das ist sehr wahrscheinlich Dateizugriff.
    Dann jedoch haben diese Module nichts innerhalb des URL-Space verloren.

    Beide Ordner sollen eigentlich nicht mit dem Browser erreichbar sein.

    Wenn im ersten Fall der Browser die Bilder saugt, dann muß der Ordner für HTTP-Zugriffe erreichbar sein. Meinst Du vielleicht, es soll kein Directory Browsing möglich sein? Dann schalte es ab.

    Welches ist wohl der bessere Weg: .htaccess

    In keinem Fall. HTTP Authentication ist dafür gedacht, eingeschränkten Zugriff zu geben, nicht aber, diesen komplett zu verbieten.

    oder ein chmod im jeweiligen Ordner?

    Das führt zu internen Serverfehlern bei entsprechenden Zugriffen. Willst Du Dein error_log mit solchen Meldungen füllen lassen?

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
    1. Hallo Michael!

      Dein Posting hat mich jetzt nicht wirklich weitergebracht. Beim ersten Unterordner handelt es sich um einen Images-Ordner, aus dem der Browser Image-Dateien ziehen muss. Hier möchte ich einfach nur, dass nicht diese Dateiübersicht erscheint, da keine index.htm in diesem Ordner ist. Dachte hier an .htaccess mit Umleitung zur index.php im root.

      Module-Ordner: die index.php zieht aus diesem Ordner mit include seine Module. Ja wo soll ich mit dem Ordner hin? Ein Normaluser hat nur Zugriff auf den URl-Space ... oder irre ich mich?
      Zudem liegt in diesem Ordner das MySQL-Passwort. Mir wäre da schon daran gelegen, dass das nicht jemand sieht (beispielsweise durch ausprobieren der Ordner. Wäre da nicht das Recht, dass nur noch der Eigentümer Zugriff hat, eine Lösung?

      1. Hallo,

        Beim ersten Unterordner handelt es sich um einen Images-Ordner, aus dem der Browser Image-Dateien ziehen muss. Hier möchte ich einfach nur, dass nicht diese Dateiübersicht erscheint

        http://httpd.apache.org/docs/mod/core.html#options und dort vor allem nach Indexes schauen.

        Module-Ordner: die index.php zieht aus diesem Ordner mit include seine Module. Ja wo soll ich mit dem Ordner hin? Ein Normaluser hat nur Zugriff auf den URl-Space ... oder irre ich mich?

        Falls du keine andere Möglichkeit hast, als diese Module in einem Verzeichnis abzulegen, auf welches auch der Webserver Zugriff hat, dann sperre diesen über eine .htaccess Datei aus.
        http://httpd.apache.org/docs/mod/mod_access.html#deny

        Viele Grüße,

        Stefan

        --
        Lass dir das Tanzen NICHT verbieten
        http://tanzverbot.de
      2. Hi sirmark,

        Beim ersten Unterordner handelt es sich um einen Images-Ordner, aus dem der Browser Image-Dateien ziehen muss. Hier möchte ich einfach nur, dass nicht diese Dateiübersicht erscheint, da keine index.htm in diesem Ordner ist.

        dann schalte diese Dateiübersichtsfunktion ab.

        Dachte hier an .htaccess mit Umleitung zur index.php im root.

        Eine Fehlermeldung auszugeben ist weniger Last für den Server als eine Umleitung.

        Module-Ordner: die index.php zieht aus diesem Ordner mit include seine Module. Ja wo soll ich mit dem Ordner hin? Ein Normaluser hat nur Zugriff auf den URl-Space ... oder irre ich mich?

        Es gibt auch funktionsfähige Web-Angebote.
        Wenn Deines keinen Speicherplatz außerhalb des DOCUMENT_ROOT hat, wechsele den Provider.

        Zudem liegt in diesem Ordner das MySQL-Passwort.

        Eben. Deshalb darf es gar nicht erst möglich sein, daß Dein PHP-Modul auch nur syntaktisch durch einen URL ansprechbar ist!
        Stell Dir vor, Dein Provider macht einen Fingerfehler und schaltet versehentlich die Interpretation von .htaccess ab! Dann bist Du geplatzt. (Und das Self-Portal hat genau dies schon mal bei einem Provider am eigenen Leib erlebt ...)

        Wäre da nicht das Recht, dass nur noch der Eigentümer Zugriff hat, eine Lösung?

        "undenkbar" ist zuverlässiger als "durch einen Schutz verhindert".

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.