Esmy: Verzeichnisschutz und .htaccess

Hallo,

Ich wollte für ein Verzeichnis auf meinem Webspace einen Verzeichnisschutz über die .htaccess einrichten. Und zwar so, dass entweder nur von einem bestimmten Verzeichnis auf dem gleichen Server oder über die Domainendung oder über die IP-Adresse des Servers.
Aber sowohl:

order deny,allow
deny from all
allow from localhost

noch

order deny,allow
deny from all
allow from .domain.de

noch

order deny,allow
deny from all
allow from IPdesServers

haben funktioniert - auch nicht wenn ich allow und deny umkehre.

Wie kann ich das einrichten?

Gruß und vielen Dank.
Esmy

  1. Hast Du in der httpd.conf die htaccess funktion aktiviert?
    Erhälst Du Fehlermeldungen?
    Welchen Webserver benutzt Du?

    mfG der Hilker

    1. Hast Du in der httpd.conf die htaccess funktion aktiviert?
      Erhälst Du Fehlermeldungen?
      Welchen Webserver benutzt Du?

      mfG der Hilker

      hallo,

      danke erstmal für deine schnelle Antwort:

      htaccess ist aktiviert. Ich erhalte auch planmäßig den 403-Error, allerdings auch von da, wo der Zugriff eigentlich erlaubt sein sollte.

      Webserver: Apache. Version...uff...wahrscheinlich 2.0 (kann aber auch noch 1.1 oder so sein)

      1. ich habe verschiedene V-Hosts eingerichtet und dort im "Directory" Bereich eine AllowOverride All eingefügt, um sicherzustellen, dass die Optionen aus der .htaccess auch greifen.
        s.u.:

        <Directory "\usr\projekte\home\html\software">
                Options Indexes FollowSymLinks ExecCGI
                Order allow,deny
                AllowOverride All
                Allow from all
            </Directory>

        vielleicht hilft Dir das ja weiter..

        mfG Markus

        1. ich habe verschiedene V-Hosts eingerichtet und dort im "Directory" Bereich eine AllowOverride All eingefügt, um sicherzustellen, dass die Optionen aus der .htaccess auch greifen.
          vielleicht hilft Dir das ja weiter..

          ich denke, dass die Optionen aus der htaccess schon greifen, sonst würde ich keinen 403-Error sondern 500 bekommen. Oder?
          Naja, zur Not kann ich es ja mal probieren;)

  2. hi,

    Ich wollte für ein Verzeichnis auf meinem Webspace einen Verzeichnisschutz über die .htaccess einrichten. Und zwar so, dass entweder nur von einem bestimmten Verzeichnis auf dem gleichen Server oder über die Domainendung oder über die IP-Adresse des Servers.

    Aber sowohl:

    order deny,allow
    deny from all
    allow from localhost

    dieses allow beschränkt sich auf zugriffe, bei denen der request vom selben rechner kam, auf dem auch die seite läuft.

    noch

    order deny,allow
    deny from all
    allow from .domain.de

    dieses allow beschränkt sich auf zugriffe, bei denen der request vom rechner der domain domain.de kam.

    noch

    order deny,allow
    deny from all
    allow from IPdesServers

    dieses allow beschränkt sich auf zugriffe, bei denen der request vom rechner mit der ip-adresse IPdesServers kam.

    haben funktioniert - auch nicht wenn ich allow und deny umkehre.

    Wie kann ich das einrichten?

    was _willst_ du denn eigentlich einrichten?

    bisher hast du immer nur darauf geprüft, ob der zugriff von der maschine aus kam, auf der der webserver läuft.

    vermutlich willst du aber was ganz anderes, nämlich zugriffe für bestimmte _clients_ erlauben/verbieten.
    das geht aber natürlich nicht über die server-ip.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. was _willst_ du denn eigentlich einrichten?

      also ich hab 2 subdomains auf 2 verschiedene Verzeichnisse ein und des selben Servers konnektiert. Das Angebot aus Verzeichnis 2 soll aber nicht von außen, sondern nur aus dem Link der Präsenz des Verzeichnis 1 aufgerufen werden können.

      bisher hast du immer nur darauf geprüft, ob der zugriff von der maschine aus kam, auf der der webserver läuft.

      ähm...soll das nicht so sein?

      gruß Esmy

      1. hi,

        also ich hab 2 subdomains auf 2 verschiedene Verzeichnisse ein und des selben Servers konnektiert. Das Angebot aus Verzeichnis 2 soll aber nicht von außen, sondern nur aus dem Link der Präsenz des Verzeichnis 1 aufgerufen werden können.

        bisher hast du immer nur darauf geprüft, ob der zugriff von der maschine aus kam, auf der der webserver läuft.

        ähm...soll das nicht so sein?

        nein.
        der request kommt natürlich vom client des users, nicht vom webserver.

        was du suchst, ist eher so etwas wie der HTTP_REFERER.
        bevor du dich auf diesen stürzt, recherchierst du aber besser erst mal im archiv bzgl. dessen aussagekraft und verlässlichkeit.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. was du suchst, ist eher so etwas wie der HTTP_REFERER.
          bevor du dich auf diesen stürzt, recherchierst du aber besser erst mal im archiv bzgl. dessen aussagekraft und verlässlichkeit.

          hm, stimmt - aber browserabhängige Sachen sind nicht so der Hit. Und per htaccess kann man da gar nichts machen?
          Ich wollte eigentlich einen nochmaligen Passwortschutz umgehen.

          Gruß
          Esmy

          1. hi,

            was du suchst, ist eher so etwas wie der HTTP_REFERER.
            bevor du dich auf diesen stürzt, recherchierst du aber besser erst mal im archiv bzgl. dessen aussagekraft und verlässlichkeit.

            hm, stimmt - aber browserabhängige Sachen sind nicht so der Hit. Und per htaccess kann man da gar nichts machen?

            doch, auch der referer liesse sich beispielsweise "per htaccess" auswerten.

            aber eine zuverlässige methode für das, was du willst - request nur akzeptieren, wenn der besucher vorher auf seite/domain xy war, gibt es nicht - HTTP als zustandsloses protokoll hat darüber keine kenntnis.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. aber eine zuverlässige methode für das, was du willst - request nur akzeptieren, wenn der besucher vorher auf seite/domain xy war, gibt es nicht - HTTP als zustandsloses protokoll hat darüber keine kenntnis.

              gruß,
              wahsaga

              ok, vielen Dank. Hat mir sehr geholfen.

        2. Hallo Esmy,

          ähm...soll das nicht so sein?

          nein.
          der request kommt natürlich vom client des users, nicht vom webserver.

          was du suchst, ist eher so etwas wie der HTTP_REFERER.
          bevor du dich auf diesen stürzt, recherchierst du aber besser erst mal im archiv bzgl. dessen aussagekraft und verlässlichkeit.

          Auch der HTTP_HOST ließe sich auswerten. Nur das der vom User nicht so stark beieinflußt werden wird, wie der HTTP_REFERER.

          Gruß aus Berlin!
          eddi

          1. hi,

            Auch der HTTP_HOST ließe sich auswerten. Nur das der vom User nicht so stark beieinflußt werden wird, wie der HTTP_REFERER.

            der wird vom user vermutlich gar nicht beeinflusst werden können, weil da der servername des webservers drin steht - und ist damit für diesen fall genauso nutzlos, wie Esmys erste versuche.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. hi,

              Auch der HTTP_HOST ließe sich auswerten. Nur das der vom User nicht so stark beieinflußt werden wird, wie der HTTP_REFERER.

              der wird vom user vermutlich gar nicht beeinflusst werden können,

              Unter der Annahme es ist nur eine Domains unter einer IP-Adresse angemeldet, oder es betrifft der default-Server, ist dies möglich.

              weil da der servername des webservers drin steht - und ist damit für diesen fall genauso nutzlos, wie Esmys erste versuche.

              Stimmt; da lag ein Mißverständnis meinerseits vor, jedoch würde ich dennoch nicht auf HTTP_REFERER setze wegen der mangelhaften Aufrichtigkeit.

              Eine serverseitiges Script/Programm könnte dies aber mit lückenloser Unterstützung erledigen. Hierbei würde eine Variable (per $_GET) ausreichen, die irrelevant wahrscheinlich erraten werden kann.

              Gruß aus Berlin!
              eddi

              1. hi,

                Eine serverseitiges Script/Programm könnte dies aber mit lückenloser Unterstützung erledigen. Hierbei würde eine Variable (per $_GET) ausreichen, die irrelevant wahrscheinlich erraten werden kann.

                warum nicht gleich zu sessions greifen, wo das gute liegt so nah ...

                gruß,
                wahsaga

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. Gute Nacht,

                  Eine serverseitiges Script/Programm könnte dies aber mit lückenloser Unterstützung erledigen. Hierbei würde eine Variable (per $_GET) ausreichen, die irrelevant wahrscheinlich erraten werden kann.

                  warum nicht gleich zu sessions greifen, wo das gute liegt so nah ...

                  ;)

                  Gruß aus Berlin!
                  eddi