Atrus2711: Unterscheidung "User/Kennwort falsch" vs. "Keine Rechte"

Hallo Forum,

ich versuche, in einem per htaccess geschützten Ordner die folgenden Fälle zu unterscheiden:
* User/Kennwort passt nicht zusammen
* Identifizierter User (User und Kennwort OK) hat auf den Ordner keinen Zugriff

Die infragekommenden Statuscodes sind 401 und 403. Angenommen, ich habe die Ordnerstrukur
DocRoot
+admin (<< require user admin)
+team  (<<require user team)
, dann müsste ich doch als angemeldeter User "team" beim Zugriff auf den Ordner admin einen 403 kriegen: erkannt und verweigert. Ich kriege aber einen 401. Wieso das? Und wie kann ich nun die beiden o.e. Fälle utnerscheiden? Der 401 scheint irgendwie für beides zu gelten.

Gruß
Martin

  1. Moin!

    dann müsste ich doch als angemeldeter User "team" beim Zugriff auf den Ordner admin einen 403 kriegen: erkannt und verweigert. Ich kriege aber einen 401. Wieso das? Und wie kann ich nun die beiden o.e. Fälle utnerscheiden? Der 401 scheint irgendwie für beides zu gelten.

    HTTP-Status 401 sagt: Mit den gesendeten Anmeldedaten ist ein Zugriff hier nicht möglich, schick was anderes. Beim ersten Zugriff unangemeldet dann eben mit Leerstrings für Username und Passwort - das ist in dem Sinne kein Sonderfall.

    Der Browser wird daraufhin das Eingabefeld anzeigen, den Benutzer dadurch auffordern, "bessere" Zugangsdaten einzugeben, und den Request erneut versuchen. Bricht der Benutzer den Eingabedialog ab, zeigt der Browser danach die zusammen mit dem Status 401 gesendete HTML-Seite (analog z.B. zu 404-Fehlerseiten).

    403 wird nur gesendet, wenn der Zugriff absolut nicht möglich ist. Bei Passwortzugriff kann er ja möglich sein, wenn man die richtigen Zugangsdaten benutzt.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hi Sven,

      danke für die Infos.

      Aber zu deiner Aussage

      403 wird nur gesendet, wenn der Zugriff absolut nicht möglich ist. Bei Passwortzugriff kann er ja möglich sein, wenn man die richtigen Zugangsdaten benutzt.
      <<
      muss ich noch mal nachhaken: welche Beispiele könnten denn so eine absolute Unmöglichkeit darstellen?

      * Zugriff auf die .htaccess selbst (immer verboten)?
      * Zugriff auf ein verzeichnis ohne Indexdatei und mit -Indexes in der htaccess?
      * welche noch?

      Gruß
      Martin

      1. Hallo Martin,

        muss ich noch mal nachhaken: welche Beispiele könnten denn so eine absolute Unmöglichkeit darstellen?

        * Zugriff auf die .htaccess selbst (immer verboten)?
        * Zugriff auf ein verzeichnis ohne Indexdatei und mit -Indexes in der htaccess?
        * welche noch?

        * der Webserver kann auf Grund ungenügender Rechte die Datei nicht lesen
         * die IP des Nutzers wurde in der Konfiguration gesperrt
         * ein anderes Merkmal des Requests des Benutzers (z.B. könnte man an Hand des User-Agents aussperren - ob das sinnvoll ist, wäre natürlich die zweite Frage, aber möglich ist).
         * bestimmt noch einige weitere webserverspezifische Ursachen

        Viele Grüße,
        Christian

        --
        "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
        1. Danke, das hilft mir weiter!

          Gruß
          martin