Probleme mit Hotlinking
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
administrator
anything
beitrag
bessere lsung
date
datei
error
folgende fehlermeldung
inform
komponente
log
lsung
mu
pawort
please
python
schutz
sperren
wert null
zeitpunkt
-
Hi ihr?
Ich möchte bei mir Hotlinking schützen. Bisher habe ich eine PHP-Datei gebaut, die Avatare meines Forums unter dem WebRoot lädt. Damit können die Links nicht auf dem direkten Weg geladen werden. Allerdings ist die ganze Aktion eher für den A...., da andere ja auch dann nur den Link bräuchten für die avatar.php, und schon wieder die woanders die Grafiken nutzen könnten.
Ich habe darauf erstmal folgenden .htaccess-Code verwendet.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?meinedomain\.de(/.*)?$ [NC]
RewriteRule \.(bmp|gif|jpg|GIF|JPG|png|PNG)$ http://www.meinedomain.de/images/hotlinking.gif [R,L]
Allerdings bekomme ich folgende Fehlermeldung vom Server:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, ***************** and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.0.53 (Win32) PHP/5.0.4 mod_ssl/2.0.53 OpenSSL/0.9.7f mod_python/3.1.3 Python/2.3.3 mod_perl/1.999.21 Perl/v5.8.6 Server at 127.0.0.1 Port 80
Hat jemand ein aufmerksames Auge, oder kennt jemand eine Lösung für PHP (so ne Art HTTP-REFFERER-Sperre?
Beitrag geändert: 20.10.2006 9:46:27 von chaosboy79 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hat jemand ein aufmerksames Auge, oder kennt jemand eine Lösung für PHP (so ne Art HTTP-REFFERER-Sperre?
Mach doch genau das. Die Variable, die du dazu brauchst ist $_SERVER['HTTP_REFERER'] .
Eine bessere Lösung wäre vllt, wenn deine Bilder per md5 jeden Tag ein anderes "Passwort" haben.
$Passwort=md5(date('dmy').'GEHEIMTEXT');
Der Geheimtext, soll dafür sorgen, dass man den md5 String nicht nachbauen kann, denn man merkt schon recht schnell, dass ein Passwort nur einen Tag gültig ist und folglich auf dem Zeitpunkt aufbaut. Deswegen diese weitere Komponente.
Wenn jemand ein Bild von dir anfordert, muss er in der URL das $Passwort mit übergeben und das bekommt er nur von deiner Website.
Beitrag geändert: 20.10.2006 10:28:36 von bladehunter -
Das mit dem HTTP-Refferer hatte ich mit getenv('HTTP_REFFERRER') (so in etwa hieß dieses Ref...blah) versucht, dort kam eigentlich nur der Wert NULL raus, egal welche Aufrufmethoden ich verwendet habe. Aber deine md5-Idee bringt mich schon sehr gut weiter. Nen Cronjob wird da bestimmt schon was richten. Wenn ich schon ne ganze Community schreibe, dann wird das wohl was ziemlich leichtes sein (zack, *Eintrag in die Datenbank oder über fopen/fwrite mach* (also ne weitere Datei unterm W-Root) und schon schauen die Trafficdiebe blöd aus der Wäsche, weil die ein völlig falsches Image (bessergesagt Werbung von meiner Page) von mir aufgebrummt kriegen.) Strafe muß sein!
Dank dir. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage