[PHP] [HTACCESS] Webseitenbereich absichern

  • PHP

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Link.

    [PHP] [HTACCESS] Webseitenbereich absichern

    Hi,

    Es geht darum einen bestimmten Bereich einer Website abzusichern.

    Ich hab bereits eine Webanwendung mit PHP und einer MySQL-Datenbank, in der es auch eine Benutzerverwaltung gibt.
    Das Ganze funktioniert klassisch - für jeden Benutzer wird ein Benutzername und ein Passwort (Hash) abgelegt, beim Login werden die Daten abgefragt, falls erfolgreich, startet die Session. Soweit cool.

    Jetzt ist es ja trotzdem so, dass auch wenn ich nicht eingeloggt bin, aber den absoluten Pfad (URL) zum Beispiel zu einem Bild kenne, ich dieses aufrufen kann. Logisch, in einem Bild kann ich keine Prüfung hinterlegen um sicherzustellen, dass der Benutzer authentifiziert ist.

    Jetzt könnte man das mit RewriteRules in der htaccess festlegen, und quasi einfach immer auf eine PHP-Datei verlinken, die dann den Zugriff handelt.

    Bevor ich es so mache, würde ich aber gern wissen, ob es möglich ist, einen anderen Ansatz zu verfolgen. Optimal wäre, den Zugriff über HTTP-Authentifizierung zu erhalten. Alle Benutzer mit Passwörtern wären allerdings dann in einer .htpasswd oder ähnlichem - und ich möchte diese Datei weder manuell beschreiben, noch möchte ich, dass der Benutzer den Login über diesen hässlichen Dialog vollziehen muss.
    Das geilste wäre, wenn ich die Daten für die HTTP-Authentifizierung irgendwie anstatt aus der htpasswd besser aus der Datenbank lesen könnte, bzw. Benutzername und Passwort manuell zu setzen, ohne es über den automatisch aufpoppenden Dialog machen zu müssen.
    Ich hab schon äußerst viele Ansätze verfolgt. Unter anderem, in der htaccess das HTTP_COOKIE zu prüfen. Aber das is alles Mumpitz.

    Die Frage ist, kann das so wie ich es mir vorstelle überhaupt funktionieren? Ich hab bereits allerlei versucht, leider ohne Erfolg.

    Edit: Ich hab übrigens auch schon umgedacht - meine Idee: Wenn der Benutzer seine Daten über mein hübsches Login-Formular abgesendet hat, dann wird im Hintergrund die HTTP-Authentifizierung vorgenommen. Das heißt es liegt in der htpasswd nur EIN Benutzer mit einem Passwort - wenn der User sich authentifiziert (abgleich mit dem Datensatz in der DB) dann soll die HTTP-Authentifizierung vorgenommen werden mit diesem einen Benutzer aus der htpasswd. Aber das ließ sich bisher auch in keiner Weise umsetzen..



    Link :thumbup:
    Hello World

    Link schrieb:

    Jetzt könnte man das mit RewriteRules in der htaccess festlegen, und quasi einfach immer auf eine PHP-Datei verlinken, die dann den Zugriff handelt.

    Ich würde das so implementieren, was spricht dagegen?

    Also Bilder in ein Ordner, mit htaccess schützen, PHP-Script das das entsprechende Bild ausgibt oder wenn der User nicht authentifiziert ist ein Dummy Bild.
    Ja, cool ... das stand bereits als Alternative in meinem Eröffnungspost. Dass und wie das auf diese Weise geht, weiß ich selbst. Die Frage war ja, ob ich die Daten für eine HTTP-Authentifizierung hinterlegen kann, ohne diese über den aufpoppenden Dialog eingeben zu müssen.

    Link :thumbup:
    Hello World
    Mir wäre da jetzt kein sinnvoller Weg bekannt, immerhin passiert das Clientseitig. Man könnte theoretisch iwas mit JavaScript basteln, welches im Header die Information (Authorization: Basic ...) einträgt und das Bild lädt, aber ob das zielführend und sicher ist bezweifle ich. Weswegen ich, wie gesagt, zu der Alternativ über ein PHP-Script greifen würde.
    Ja ich hab auch nichts weiter gefunden - schade. Dann muss ich es wohl über den alternativen Weg machen...

    @Goldwing Studios verstehe keine Wort, ich glaub du bist voll am Thema vorbei irgendwie

    Link :thumbup:
    Hello World