Kako zabraniti hotlinking?

Povezivanje (linkanje) vaših stranica s drugih web stranica smatra se poželjnim, jer vašem web sjedištu podiže važnost (rating) i posjećenost. No, ukoliko se linkaju samo izdvojeni sadržaji na vašem web sjedištu, situacija je drugačija. Direktan pristup resursima, slikama ili drugim multimedijalnim sadržajima vašeg poslužitelja naziva se hotlinking. Ovo se najčešće odvija bez vašeg pristanka ili znanja, te je često poželjno spriječiti takve veze. Za hotlinking se također koriste nazivi poput: leeching i bandwidth theft.


Evo primjera html koda na stranom poslužitelju koji predstavlja hotlink na sliku s vašeg poslužitelja:

<img src="http://moj.server.hr/slika.jpg" height="200" width="200">

Na svako učitavanje stranica vanjskog web sjedišta, kontaktira se i vaš poslužitelj i na taj način opterećuje vaš link.

Zaštita od hotlinkinga je jednostavna. Za resurse koje želite zaštititi dovoljno je u direktoriju gdje su smješteni kreirati datoteku .htaccess sa sljedećim kodom:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mojserver\.hr/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|gif|png)$ /slike/prazno.jpeg [L]

Prva linija uključuje naredbu rewrite, druga linija omogućuje bilo koji zahtjev sa našeg servera, dok prekidač [NC] znači No Case (bez razlike velika ili mala slova).

Treća linija omogućuje korisnicima koji pregledavaju web, a nalaze se iza firewall-a. Od takvih korisnika ne stižu nikakve informacije o zahtjevima (requests), te im ova linija omogućuje prikaz slika (ali ne i linkanje). Zadnja linija koda onemogućuje linkanje slika jpg, gif i  png, te ih zamjenjuje s nekom praznom slikom ("prazno.jpeg"). Ovu datoteku smo kreirali kako bi upozorili ostale da hotlinking nije dopušten. Prekidač na kraju linije [L] označava kraj pravila.

Ako želite zabraniti hotlinking određenom virtualnom poslužitelju (VirtualHost) dovoljno je u njegovom početnom direktoriju (DocumentRoot) napraviti ovakvu .htaccess datoteku:

RewriteEngine on
RewriteCond %{HTTP_REFERER} www.imeservera\.com [NC]
RewriteRule .* - [F]

Ako želimo napraviti zabranu za više virtualnih hostova, na kraju retka za nabrajanje se koristi prekidač [OR]

Primjer:

RewriteEngine on
RewriteCond %{HTTP_REFERER} www.imeservera\.com [NC, OR]
RewriteCond %{HTTP_REFERER} www.imeservera2\.com [NC]
RewriteRule .* - [F]

[F] na kraju koda daje poruku Forbidden

Više možete pogledati na http://httpd.apache.org/docs/2.4/rewrite/access.html

Zdravko Rašić

Vijesti: 
Kuharice: 
Kategorije: 
Vote: 
0
No votes yet