• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Passwortgeschützer Bereich

firefexx

New member
Guten Tag,
ich versuche mich momentan an einem Passwortschutz per PHP.
Dabei geht es aber nicht um das einloggen per Formular und der Speicherung der Zugangsdaten in der SessionID, sondern um etwas komplizierteres:

Würde ich den Schutz so wie oben kurz beschrieben programmieren, wäre es trotzdem möglich, Bilder, PDF-Dateien usw. anzusehen, wenn man sie über die direkte URL aufruft. Das ist ja auch logisch, schließlich setzt dann erst gar kein PHP Script an.
Was ich brauche ist also eine wirklich passwortgeschützte Verzeichnisstruktur, so wie es ein leichtes mittels htaccess ist.

Würde ich das ganze also mit htaccess machen, käme bei jedem Zugriff die Passwortabfrage in einem vom Browser geöffneten Dialog. Das möchte ich aber auch nicht.

Was ich mir konkret vorstelle ist ein Formular auf einer PHP Seite, in dem der User ein Passwort eingeben kann. (Benutzernamen gibt es nicht und das Passwort ist für alle das gleiche.) Nach einem Klick auf den Submit-Button soll dann, und hier komme ich nicht weiter, die PHP-Datei irgendwie den User für das passwortgeschützte Verzeichnis anmelden. Vielleicht indem die Datei selbst den htaccess Dialog ausfüllt (falls das möglich ist) oder eben irgendwie anders.
Ich bräuchte also einen Passwortschutz, der nicht durch das Nichtbenutzen der PHP Seite umgangen werden kann und trotzdem nicht den htaccess/Browser generierten LogIn Dialog anzeigt. Der sieht nämlich nicht sonderliche ansprechend aus und auf die Sache mit dem Benutzernamen soll ja verzichtet werden.

Ich hoffe ich konnte alles klar beschrieben, wenn nicht bitte nochmal nachfragen.
Wäre super wenn jemand eine gute Idee hat. =)
Danke!! :d
 
Hallo, danke für deine Antwort.

An so etwas habe ich auch gedacht, aber wie funktioniert so ein Downloadscript? Was macht es genau usw.. Habe zwar schon danach gesucht, aber die Ergebnisse waren meist nur bezogen auf Scripts die Verzeichnisse einlesen und daraus eine Downloadgalerie besteln. Das möchte ich gar nicht. Soll genauso ein Link sein wie geöhnlich, man klickt drauf und die PDF Datei wird heruntergeladen. Aber halt nur im sicheren Bereich.

Was ich auch nicht in Einklang mit dem Downloadscript bringen kann:
Es gibt ja abgesehen von den PHP Dateien nicht nur das PDF Dokument in dem geschützten Verzeichnis. Es wird auch sehr viele Bilder für eine Javascript-Bildergalerie geben und das kann ich grade irgendwie nicht vereinen.. :confused: Die sollen ja nicht durch das Script heruntergeladen werden sondern wie gehabt auf der Seite dargestellt werden. Was kann ich da tun..

Irgendwie schade, dass es nicht möglich ist, sich durch das PHP-Script bei der htaccess Datei anzumelden. Das wäre am einfachsten.

THX
mfg.
 
mhh, also das mit dem Suchen musst du nochmal üben

http://www.php-faq.de/q-datei-download.html

die Liste der Dateien würde ich durch ne whitelist-Prüfung absichern, wie es in dem Beispiel auch gemacht ist, ansonsten könntest du auch einfach des entsprechende Verzeichnis einlesen und dir die Links selbst generieren
 
Die sollen ja nicht durch das Script heruntergeladen werden sondern wie gehabt auf der Seite dargestellt werden. Was kann ich da tun..

Nix!
Was im Browser ankommt, kann auch runtergeladen werden.
Einen effektiven Schutz gibt es nicht.
Man kann das Runterladen erschweren, aber letztendlich nicht verhinden.
(sofern ich das jetzt richtig verstanden habe)
 
Ok danke, habe ich jetzt im Großen und Ganzen verstanden.

Nix!
Was im Browser ankommt, kann auch runtergeladen werden.
Einen effektiven Schutz gibt es nicht.
Man kann das Runterladen erschweren, aber letztendlich nicht verhinden.
(sofern ich das jetzt richtig verstanden habe)
Ok sry, vielleicht habe ich mich etwas unglücklich ausgedrückt. Das hast du falsch verstanden: Wenn man erstmal eingeloggt ist darf natürlich jeder die Dateien runterladen. Aber eben nicht wenn kein Login erfolgte. Doch wie unterbindet man das? Meines Wissens nach nur durch htaccess, sonst kann man ja per URL an die Bilder ran. Doch wenn ich die Bilder per htaccess schütze, wie bekomme ich sie dann in meine JavaScript Galerie. Das ist das Problem um das es geht. Meine PHP Seiten und Scripte müssen an die Dateien ran, aber eben nicht die unautorisierten Benutzer.

Du kannst per .htaccess auch nur bestimmte Dateitypen sperren.
Aber dann habe ich immer noch das gleiche Problem?!

Ich wundere mich, dass so ein Problem bisher noch nicht aufgetaucht ist.
 
Zu kompliziert erklärt, oder?

Einen Ordner unterhalb von root einrichten (oder tiefer), diesen mit .htaccess schützen und fertig.
Will jemand von "außen" ohne Passwort drauf zugreifen, bekommt er eine Forbiddenseite.
Das wäre das gängigste und einfachste Verfahren...
 
Ja, genau so habe ich mir das gedacht. Das funktioniert ja auch.
Und jetzt brauche ich noch eine frei erreichbare Seite, die das Passwort abfragt und den User in den geschützten Bereich schleust. Das ist ja eben das Problem. Wenn man durch ein PHP Script (für jeden erreichbar) die Anmeldung bei der htaccess tätigen könnte wäre das perfekt.
 
wozu? lade die Daten mit in PHP einen Buffer, setze den Header richtig und zeige die Datei an. Aber nur wenn der User eingeloggt ist.
 
Weil, wenn es denn überhaupt möglich ist?!, es wesentlich einfacher wäre.
Es wäre jetzt ein riesiger Aufwand, die Galerie, die ja ständig neue Bilder zeigt usw. so umzuschreiben dass es mit dem PHP Buffer und dem readfile und dem header etc. funktioniert.
 
du must nur den Pfad ändern (weil du einen Ordner mit htaccess Passwordschutz brauchst) und eine PHP-Datei schreiben, die mit einem GET Parameter dann die richtige Datei einliest und den header kann man, wenn ich mich richtig erinnere sogar auslesen.
 
Ok, da müsste ich mal drüber nachdenken, wie weit das für mein Vorhaben sinnvoll ist.

Zuvor noch zwei Ansätze zu dem Thema mit PHP bei htaccess einloggen, weil das wirklich der optimale Weg wäre (sicher & einfach):

Code:
http://Benutzername:Passwort@www.domain.de/geschuetztes/verzeichnis
Das habe ich bei meiner Suche gefunden.. Wenn man das als Ziel angibt und für Benutzername und Passwort die entsprechenden htaccess Zugangsdaten eingibt sollte es funktionieren. Was ist davon zu halten?

Außerdem fand in ähnlichen Diskussionen immer wieder die HTTP-Authentifizierung mit PHP Erwähnung. Nur habe ich dieser Seite noch nicht entnehmen können in wie fern sie mir weiterhilft.

Danke für eure Unterstützung..
 
Der erste Ansatz funktioniert in neueren IEs (ich glaub' ab 7) nicht mehr.
Der zweite Ansatz ruft wieder das von dir abgelehnte Anmeldeverfahren auf - mit der hässlichen Eingabemaske.
 
Wenn dein Apache über das mod_rewrite Modul verfügt, könntest du weiterhin einfach die Bilder mit <img src="dir_x/..."...> einbinden. In dir_x liegt eine htaccess mit einer rewrite-Anweisung, dass alle Anfragen auf ein Script weiterleitet und die ursprüngliche Anfrage als GET mitliefert.
Das Skript prüft ob der Benutzer angemeldet ist und liefert dann das Bild aus. Dies geschiet durch das Setzen des richtigen Headers und dann durch das einlesen und ausgeben des Bilders über php.
 
Ok das Mitgeben der Zugangsdaten über die URL scheidet dann ja aus, wenn der IE nicht mit mit macht. Außerdem will der Firefox dann auch noch eine Bestätigung haben, also recht sinnlos alles.

Was ich nicht so recht verstehen will: Wenn ich doch die Zugangsdaten in diesem Anmeldefenster eintippe und bestätige, werden doch irgendwelche Daten irgendwohin gesendet. Warum kann ich das nicht auch mit PHP simulieren und mich so bei der htaccess einloggen?! Wenn der Mensch sich einloggen kann, warum dann nicht die Maschine?

Naja, ansonsten muss ich wirklich den Weg über das einlesen der Bilder gehen. Eventuell mit modRewrite usw. Muss ich mich erstmal drüber informieren..
 
Die Daten werden vom Browser gespeichert und bei jeder Anfrage im Header mitgesendet. Deswegen kommst du da mit PHP nicht hin.
 
Mhh, ja.. Habe jetzt mal die Header Daten aufgezeichnet und herausgefunden wie das gemacht wird.
Der Client sendet
Code:
Authorization=Basic name:pass
wobei name:pass base64 encodet ist..

Nur wie ich aus deiner Antwort erahne ist es nicht möglich irgendwie selbst das Feld Authorization im header auszufüllen?! =/

Naja schade, dann geht es wohl wirklich nicht. Schade..
 
Nein, nichts spricht dagegen. Ich bin euch auch dankbar für alle Beiträge zu diesem Thema. Was ich meinte war nur, dass die Kombination aus PHP und htaccess nicht funktioniert. Das ist schade. Eine andere Methode, von denen ja ein paar genannt wurden, sind ja trotzdem möglich und das werde ich auch tun.

Dankesehr. :)
 
Zurück
Oben