login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[htaccess] hotlinken (Opgelost)

Offline overdruk - 25/09/2009 23:39 (laatste wijziging 25/09/2009 23:39)
Avatar van overdrukLid Beste Forummers,

Ik heb momenteel het volgende in een .htaccess bestandje tegen hotlinken staan:

  1. RewriteEngine on
  2. RewriteCond %{HTTP_REFERER} !^$
  3. RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?eigendomein.ws/.*$ [NC]
  4. RewriteRule \.(png|jpg)$ http://eigendomein.ws/forbidden.jpe [R,L]


Op zich werkt dit, als je naar de gewone url linkt (die op .png/.jpg eindigt), komt forbidden.jpe als afbeelding.

Alleen nu komt het, op mijn site worden de plaatjes aangeroepen via images.php?id=123 en daarbij werkt de .htacces niet.
Heeft iemand enig idee welke code ik hiervoor nodig heb?

Gr,
Overdruk

6 antwoorden

Gesponsorde links
Offline NTS64 - 26/09/2009 20:45
Avatar van NTS64 PHP gevorderde Als je plaatjes niet rechtsreeks van buitenuit kunnen worden aangeroepen én je ze enkel ophaalt mbv image.php, dan is er toch geen probleem? Want image.php kan sowieso niet in een externe site worden geïnclude.
Offline overdruk - 27/09/2009 13:31
Avatar van overdruk Lid hmm, strange.
Ik heb 2 domeinen, op aparte servers, op 1 staat m'n site, op de ander heb ik die hotlink geprobeerd. De 2e domein liet gewoon via de complete link van image.php het plaatje zien.
Maar nu probeer ik zojuist de image.php link op deze site, en daar werkt het inderdaad niet.
Weet dus nog maar half waar ik aan toe ben  
Offline NTS64 - 27/09/2009 16:01
Avatar van NTS64 PHP gevorderde
overdruk schreef:
hmm, strange.
De 2e domein liet gewoon via de complete link van image.php het

Bedoel je dan dat dit werkte:

  1. <img src="image.php?id=plaatje" alt="" />

?
Offline overdruk - 27/09/2009 20:00 (laatste wijziging 27/09/2009 20:01)
Avatar van overdruk Lid jazeker, ik had een pagina geupload met:

  1. <img src="http://www.domein.ws/image.php?id=204" alt="" />
Offline NTS64 - 28/09/2009 18:03 (laatste wijziging 28/09/2009 19:05)
Avatar van NTS64 PHP gevorderde Het enige wat je kan doen volgens mij is je referer nakijken in image.php. Dit is nl. de enigste HTTP header waaraan je iets hebt hier. Maak een array met alle toegelaten referers en kijk dan of de pagina wordt opgevraagd door een referer die in die array staat.
De HTTP_REFERER header kan wel makkelijk worden gefaked, maar het is tenminste toch enige vorm van bescherming dat je hier dan tegen hebt. No offence, maar je moet wel al een hele populaire site hebben als mensen zo ver gaan als http headers vervalsen om jouw plaatjes te kunnen hotlinken. 

Wat je ook nog zou kunnen doen, maar wat nogal omslachtig en vergezocht is: je kan je image.php enkel geäuthoriseerde toegang geven(mbv Basic Access Authentication of Digest Access Authentication). Dan kan je als je een image wilt gebruiken dmv image.php die met curl ophalen en een HTTP Authorization header meegeven met je username en password. Nadeel is dan wel dat je elke keer php moet gebruiken om een simpelweg een image op te halen.

Edit:
Dacht net nog aan een iets simpelere oplossing, het meegeven van een extra parameter in de url, die je aanmaakt op de pagina waar je je image wil tonen, dan meegeeft en ontcijfert en valideert in image.php. Nadeel is dan weer dat je ook telkens als je een image wil tonen php nodig hebt.
Offline overdruk - 28/09/2009 22:13 (laatste wijziging 30/09/2009 13:59)
Avatar van overdruk Lid Thnks! Ik ga hiermee aan de slag.  

Edit:

/me=happy!

Oplossing:


  1. <?php
  2. $url = $_SERVER['HTTP_REFERER'];
  3. if( ereg( "mijndomein.ws", $url ) ) {
  4. include ("image.php");
  5. } else {
  6. echo "<img src='forbidden.jpe'>";
  7. }
  8. ?>


thnx voor de hulp !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s