Teme: URL rewriting | WordPress

Hotlinking: kad vam drugi sajtovi troše resurse

Skraćena veza: http://pedja.supurovic.net/veza/3259

Imate lep sajt, pun je sličica, ne pravite pitanje što vaše fotografije i ilustracije ljudi koriste i na drugim sajtovima i sve je naizgled lepo, sjajno i ružičasto, ali se pojavljuje problem – vaš sajt troši sve više i više resursa.

Razlog je obično u tome što drugi sajtovi umesto da kod sebe iskopiraju ilustraciju koju žele da koriste, stave direktan link na sliku koja se nalazi na vašem sajtu. Tako svaki njihov posetilac iako gleda njihove strane, slike učitava sa vašeg sajta i, praktično, vi sve to plaćate.

Ako se pogodi da neko vašu sliku postavi na kakav veoma posećen sajt, forum ili portal, jao vama. Takav sajt za nekoliko sati može da vam potroši sve resurse. Ako ste nekada naišli na poruku „Bandwidth exceeded.“ to je to. Resursi nisu neograničeni, a obično ih imate onoliko koliko ste platili. Kada sajt potroši resurse, postaje nedostupan. A to ne želite.

Ako se odlučite da tražite ko sve koristi vaše slike i troši vam protok, potrošićete mnogo vremena, a nećete mnogo postići. Čak i da nahvatate sve, teško ćete ih ubediti da uklone problematične linkove. Zato ostaje drugi način: onemogućite prikaz slika na drugim sajtovima (hotlink protection).

Kako zaštiti sajt

Zaštita se izvodi relativno jednostavno korišćenjem .htaccess datoteke (pisao sam već o njenoj upotrebi, vidite slične članke). Sve to je potrebno, to je da se za sve slučajave kada se slika koristi sa nekog sajta koji nije na listi dozvoljenih, umesto nje prikaže namenska sličica koja obaveštava da takvo korišćenje slike nije dozvoljeno.

U .htaccess datoteku treba ubaciti sledeće komande:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !http://www.mojsajt.com
RewriteCond %{HTTP_REFERER} !http://www.nekidrugisajt.com
RewriteCond %{HTTP_REFERER} !http://www.trecisajt.com
RewriteRule (wp-content/uploads.*\.(gif|jpg|jpeg|png)$) http://www.mojsajt.com/hotlinking.png [L]
Primer sličice hotlinking.png

Primer sličice hotlinking.png

Osim prve komande RewriteCond, ostale ukazuju na sajtove za koje treba dozvoliti prikazivanje slika. Komanda RewriteRule za sve sajtove osim odobrenih preusmerava prikaz gif, jpg, jpeg i png slika na namensku sličicu sa obaveštenjem da takvo linkovanje nije dozvoljeno (hotlinking.png). Sličica treba da bude što manja, jer se ona prikazuje na svim sajtovima koji nekorektno linkuju, tako da se i dalje troše vaši resursi. Što je sličica kraća, to je i potrošnja manja. Nemojte u nju stavljati mnogo grafičkih efekata i boja – neka bude što jednostavnija.

Ovaj primer odgovara WordPress blogu, ali se na sličan način može uraditi zaštita i bilo kojeg drugog sajta.

Korišćenje ovakve zaštite ima i svojih mana. Pre svega, ograničavate prikaz sličica na svim sajtovima tako da će to pogoditi i ljude koji to rade sa dobrom namerom. Dobro je da unapred napravite spisak sajtova kojima ćete dozvoliti da direktno koriste slike. Ako je blog u pitanju, to znači da treba dozvoliti prikaz slika blog agregatorima kao što su na primer Blogodak, Planetod i slični.

Obrnuta logika

Ako želite da izbegnete probleme koji su posledice zabrane svima da prikazuju fotografije direktnim linkovima sa vašeg sajta, a ipak želite da neke sajtove onemogućite u tome, onda je potrebno malo izmeniti logiku komandi i dobijate urpavo to. Svima je dozvoljeno da prikazuju fotografije, osim onim sajtovima koje navedete.

To je dobro jer tako možete da reagujete ako se pravi neki sajt koji je veoma posećen i koji vam crpi resurse mnogo više nego što je to prihvatljivo, a opet, ostali sajtovi gde se pojavi vaša sličica, a koji ne predstavljaju veliko opterećenje, neće imati problema.

Izmenjena pravila izgledaju ovako:

RewriteEngine On
RewriteCond %{HTTP_REFERER} www.zabranjensajt1.com
RewriteCond %{HTTP_REFERER} www.zabranjensajt2.com
RewriteCond %{HTTP_REFERER} www.zabranjensajt3.com
RewriteCond %{HTTP_REFERER} www.zabranjensajt4.com
RewriteRule (wp-content/uploads.*\.(gif|jpg|jpeg|png)$) http://www.mojsajt.com/hotlinking.png [L]

Dakle RewriteCond komandama navodite sajtove kojima nije dozvoljeno da linkuju slike. Primetite da je razlika u tome što sada string u uslovu nema znak „!“ ispred.


Podelite ovaj članak sa prijateljima


11 comments to Hotlinking: kad vam drugi sajtovi troše resurse

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Popunite izraz tako da bude tačan: *