Passwortschutz
pepe
- php
0 André Laugks0 Pepe0 André Laugks0 Pepe0 Tobias Kloth
Hi,
Ich baue grade ne Website worauf sich in Zukunft Bilder von uns befinden werden die irgendwie Geschützt werden sollen.
Da fällt mir sofort .htaccess ein, aber ich möchte (auch aus Designgründen) einen PHP-Login machen.
Wenn ich die Bilder nun .htaccess-Schütze dann bringt mir mein PHP-Login nicht viel.
a) Bilder anders Schützen
b) Pseudo-.htaccess-Login mit PHP
a)
Hab keine Ahnung! wird wohl nichts sinnvolles geben..
b)
$username und $passwort vom Formular an script schicken
<?
HEADER("LOCATION: http://$username:$passwort@website.de/login.php") #.htaccess-Anmeldung
?>
<?
HEADER("LOCATION: http://website.de/index.php")
?>
geht das so?
Ist das Sinnvoll?
Was hab ich noch für Möglichkeiten?
Pepe
Hallo!
[...]
Baue Dir ein Login, der auf Sessions basiert.
Die Bilder packst Du dann in einen Ordner, der mit .htaccess geschützt ist oder außerhalb des Document_Roots liegt. Die Bilder holst Du aus dem Ordner mit readfile(); und zeigst sie dem User an.
<?
login.php
HEADER("LOCATION: http://website.de/index.php")
Zurück zur Homepage
?>
Der Besucher ist so lange eingeloogt, bis er den Browser schließt.
André Laugks
Aha, also kommt kein User "von außerhalb" an die Bilder dran (wegen .htaccess) und mit PHP / readfile() kann ich das Bild trotzdem aus dem Ordner holen?
Was war noch mal DOCUMENT_ROOT?
Die Bilder werden sowieso ganz woanders liegen, da Sie alle CD Größe haben werden bilder auf einen Externen Server verlegt, wo wir die Bilder via CD drauf Spielen können...
das macht doch dann schon wieder schwierigkeiten oder?
Dann muss das Script was readfile() ausführ auch auf dem Server liegen wo die Bilder liegen gelle?
Pepe
Hallo!
Aha, also kommt kein User "von außerhalb" an die Bilder dran (wegen .htaccess) und mit PHP / readfile() kann ich das Bild trotzdem aus dem Ordner holen?
PHP kommt in diesem Fall mit der .htaccess-Datei nicht in Berührung. readfile() ließt das Bild aus.
<img src="bild.php?datei=bild.jpg"> / <a href="bild.php?datei=bild.jpg">Bild Downloaden</a>
readfile($_GET['datei']);
Und Du überprüfst immer ob der User richtig eingeloggt ist, bevor Du ein Bild "ausließt".
Was war noch mal DOCUMENT_ROOT?
Das ist das Verzeichnis in dem die Webseite liegt.
Dann muss das Script was readfile() ausführ auch auf dem Server liegen wo die Bilder liegen gelle?
Nein, die Datei/Bilder können auch auf einem anderen Server liegen.
André Laugks
Nein, die Datei/Bilder können auch auf einem anderen Server liegen.
ähm, dann könnte ja jeder meine Bilder mit readfile("http://www.andererserver.de/geschuetzerbereich/pic01.jpg")
lesen.
Das darf gar nicht gehen.
Hallo!
ähm, dann könnte ja jeder meine Bilder mit readfile("http://www.andererserver.de/geschuetzerbereich/pic01.jpg")
lesen.
Im Prinzip ja. Du solltest auf dem Server wo "www.andererserver.de" läuft festlegen, wer oder was von wo aus auf was zugreifen darf. Da sind mehrere Wege möglich.
André Laugks
Hallo André,
readfile($_GET['datei']);
herzlichen Glückwunsch - du hast soeben den Preis für das größte Sicherheitsloch gewonnen - mit datei=../conf/db.inc.php o.ä. kann man jede Datei auf die PHP Zugriff hat auslesen. Daten die vom User kommen dürfen _nie_ direkt verwendet werden!
Grüße aus Nürnberg
Tobias
Hallo!
readfile($_GET['datei']);
herzlichen Glückwunsch - du hast soeben den Preis für das größte Sicherheitsloch gewonnen - mit datei=../conf/db.inc.php o.ä. kann man jede Datei auf die PHP Zugriff hat auslesen. Daten die vom User kommen dürfen _nie_ direkt verwendet werden!
Du bist echt ein ganz schlauer Fuchs! Also manchmal frage ich mich wirklich... :-(
Mal drüber nachgedacht, dass ich das Prinzip zeigen wollte!
André Laugks
Hallo André,
Mal drüber nachgedacht, dass ich das Prinzip zeigen wollte!
Ja - ich wollte das aber nicht unkommentiert ins Archiv wandern lassen ...
Grüße aus Nürnberg
Tobias