Ultimativna Strategija Protiv Hotlinkovanja

Hotlinking i krađa bandwidtha je problem za neke web stranice. Hotlinking je ono što se dešava kad neko linkuje vašu sliku sa wašeg web sajta i koristi je na svojoj web stranici ili po forumima ili kao svoj avator u forumima. Sad zamislite nekoga ko voli da bude po forumima i pravi po desetine komentara. Svaki komentar prikazuje avatora koji je na vašem serveru….nije čudo da se ljudi žele zastititi od ovakvih postupaka.

Zaštita slika i ostalih dokumenata sa websajta nije jednostavan postupak. Internet je preplavljen člancima o zaštiti putem .htaccess fajle i bezbroj kod varijacija. Da bi zaštitili svoj sajt i bandwidth možete izabrati da vjerujete prvom kodu na koji naletite ili počnete da istražujete i isprobavate sve moguće tehnike korišćanja htaccessa dok ne nađete perfektnu soluciju.

Neki kodovi torpediraju website, neki naizgled nemaju nikakav efekat. Razlog zašto izgleda da neki kodovi nemaju nikakav efekat je to što vaše slike budu u cache vaše tražilice. Kad ubacite link u tester bez prethodnog čišćenja tražilice od cache i istorije, slika će se pojaviti kao da nije blokirana što ima zbunjujući efekat jer ne znamo da li zaštita radi ili ne radi….Ako hoćete da budete sigurni, prvo očistite browser cache i istoriju.

Ja sam se potrudila da skupim sve komadiće savjeta na internetu ovdje na jedno mjesto tako da vi ne morate. Za početnike sve ovo može izgledati zbunjujuće zato pažljivo pročitajte članak, nemojte žuriti dok vam ne bude jasno. Ako i dalje imate pitanja, slobodno ostavite komentar pa ću se potruditi da odgovorim.

Ukoliko ste iskusni programer i nađete da je nešta neispravno, molim vas da pomognete u prepoznavanju problema tako da oni kojima treba pomoc mogu da je ovdje nađu. Pa da pocnemo!

Aktiviranje hotlink zaštite u cPanelu

Napomena: Prije nego što aktivirate hotlink zaštitu u cPanelu, kopirajte sadržaj .htaccess fajle koju vec imate tako da imate nešto da uporedite. Naime, aktiviranje cPanel hotlink zaštite ponekad zna da izmijeni kod koji vec imate u htaccessu i na taj način poremeti permalinkove. Ako imate sačuvanu kopiju onda možete da je otvorite i provjerite da li je stari kod još tu i da li je tačno isti kao što je bio. Ako primjetite ikakve izmjene, popravite kod.

Savremeni cPaneli imaju ugrađenu hotlink zaštitu. Da bi aktivirali ovu zaštitu, ulogirajte se u svoj cPanel, nađite ikonu koja se zove “Hotlink Protection”. Klikni na ikonu i pokažat ce se ovo:

Prvo što treba da uradite je da ENABLE zaštitu i onda ubacite sve URL adrese kojima želite dati dozvolu slikama.

Ispod toga ima mjesto gdje se stavljaju tipovi nastavaka za slike.

“Url to Redirect to”  je mjesto gdje možete ubaciti link gdje želite da pošaljete lopove. Ako želite da servirate sliku ili neki drugi URL obavezno ubacite kvačicu na mjesto gdje piše:”Allow direct requests”

Sad klikni na dugme koje kaže “Activate”…

Očisti cache, istoriju ili otvori neki drugi browser ako ga imate (ja imam IE, Chrome, FireFox, Safari) otiđi na altlab.com ubaci URL neke slike sa svoje web stranice i testiraj. Ako se pokaže slika, hotlink zaštita ne radi, ako se ne pojavi slika onda sve radi kako treba….

MANUALNA HTACCESS HOTLINK ZAŠTITA

Ukoliko želite da imate više kontrole nad kodom koji kontroliše hotlink zaštitu onda čitaj dalje…

Gdje s kodom?

Prije nego se pozabavimo kodom da objasnim gdje da ga stavite. Kod se stavlja u .htaccess fajlu u korijenu web stranice. Pristup korijenu web stranice imate putem Cpanela i putem FTP klijenta. Ukoliko želite da radite iz C-panela onda se ulogirajte, kliknite na “File manager” izaberite domain sajta koji želite zaštititi ako imate više od jednog sajta i kliknite na Go.

Svaki host ima malo drugačiju konfiguraciju ali će s lijeve strane vjerovatno biti raznorazni folderi a s desne je sve ono što je u korjenu website koju ste izabrali. E tu bi trebao da bude i .htaccess. Ukoliko ga nema napravite jedan tako što ćete otvoriti Notepad ili neki drugi text editor i spasite ga dajući mu ime .htaccess ne zaboravite tačku na početku). Nije potrebno da stavljate bilo kakav sadržaj, samo napravite prazan .htaccess i stavite ga (upload) na server.

Možete ovo raditi i putem FTP klijenta kao što je FileZilla koji je besplatan. Kad se ulogirate u server putem FTP klijenta otiđite na public.html i to će biti korijen vaše glavnog domena. Ako imate više web stranica, onda će svaka web stranica imati svoj vlastiti direktorij u public.html. Otvorite direktorij web stranice koju hoćete da zaštitite i to će biti korijen te web stranice…nadam se da nikoga ne zbunjujem ovim, malo je teško objasniti onima koji nemaju iskustva.

Hajde da se vratimo kodovima za zaštitu od hotlinkovanja.

Kopiraj i koristi – Instant tehnika

Za sve one koji traže jednostavnu tehniku gdje sve što treba da urade je kopiranje koda, evo ga kod:

# ultimate hotlink protection
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_REFERER}     !^$
 RewriteCond %{REQUEST_FILENAME} -f
 RewriteCond %{REQUEST_FILENAME} .(gif|jpe?g?|png)$           [NC]
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+.)?domain. [NC]
 RewriteRule .(gif|jpe?g?|png)$                             - [F,NC,L]
</ifModule>

Naravno, davanje koda nije sve. Potrebno bi bilo da pokušamo da razumijemo logiku iza koda. Ukoliko vas logika ne zanima, slobodno kopiraj kod, stavi ga u .htaccess. Jedina stvar koju treba da promijenite je riječ domain koja treba da bude vaš domen. Samo domen kao recimo “bosancionline”.

One koji vole da znaju šta rade i razumiju pravila, pozivam da čitaju dalje…

Objašnjenje raznih kodova

Hotlink zaštita se radi na više načina:

  • Jednostavna blokada referrera
  • Zaštita putem REQUEST_FILENAME
  • Zaštita s dozvolom svim varijacijama vlastitog URLa
  • Zaštita s dozvolom nekim domenima
  • Pojednostavljena zaštita
  • komplikovana zaštita
  • Ultimativna zaštita

Jednostavna zaštita blokadom referera

Kod ispod je kod koji zovemo “glupi htaccess trik” koji ustvari nije uopste glup mada jednostavan.

# hotlink protection via stupid htaccess tricks
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.tld/.*$ [NC]
 RewriteRule .*.(gif|jpg)$ http://www.domain.tld/eatme.jpe   [R,NC,L]
</ifModule>

Karakteristike i razumjevanje koda:

Prvi red koji počinje sa znakom # je uvodni komentar koji slizi za lakse snalazenje.

Zaštita od grešaka – Pravila zaštite su smještena unutar ifModule (drugi i zadnji red koda) koja provjerava postojanje neophodne Apache rewrite module prije nego što pokuša da prati direktivu datu u kodu. To spriječava greške i kraširanje sajta što je i najbolja praksu kodiranja.

Aktiviranje mod_revrite module – je treca linija koda

Dozvola za blank refererrere – je u cetvrtoj liniji koda i to je obavezno.

Peti red koda dozvoljava pristup vašem domenu gdje riječ domain treba da bude ime vašeg sajta i tld treba da bude com, net, info ili šta već vi koristite. Ovaj red koda omogučava nešto što se zove konsolidirana kanonizacija.

Konsolidirana kanonizacija – Veliki broj kodova koriste dva RewriteCond pravila (bilo da blokiraju ili dozvoljavaju) da bi obuhvatili verzije URLa sa i bez www. Ovaj kod koristi samo jedno pravilo koje konsolidira obadvije verzije sa (www.)? i na taj način je korištenje www opcionalno.

Sesti red specifizira koje vrste fajli štitite i šta hoćete da pokažete umjesto slike koju lopov linkuje. U ovome kodu mi štitimo gif i jpg i šaljemo lopove ka slici kojoj smo dali ime eatme.jpe

HOTLINK ZAŠTIA PUTEM REQUEST_FILENAME

Ova metoda koristi različit pristup zaštiti od hotlinkovanja i to korištenjem REQUEST_FILENAME perimetra u RewriteCond. Ova metoda se fokusira na ime slika, dokumenata ili šta već ne, umjesto domena.

# hotlink protection via request filename
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}   -f
RewriteCond %{REQUEST_FILENAME}   -d
RewriteCond %{REQUEST_FILENAME}   .(jpeg|jpg|gif|png)$         [NC]
RewriteCond %{HTTP_REFERER}       !^http://domain.tld/.*$      [NC]
RewriteRule protected/(.*)        http://domain.tld/hotlink.jpg [R,NC,L]

Promijeni sva mjesta gdje je riječ domain u ime svog sajta i tld u svoju ekstenziju. (com, ba, info, net i slično)

I ova tehnika je jako popularna kao i prva i ima stotine modifikacija. Naš kod je generalizovana verzija za zaštitu specifičnih direktorija (foldera) protiv hotlinkovanja. Ključni aspekti ove tehnike su sledeći:

Štiti fajlu umjesto referrer – Mada nije jasno da li je zaštita fajle efikasnija od referrer zaštite, korištenje REQUEST_FILENAME je poznato kao efektivno. U ovom primjeru sve .jpg, .jpeg, .gif i .png slike koje se nalaze u zaštićenom direktoriju će biti blokirane za svakoga osim za vlasnika web stranice (http://domain.tld/).

Provjerava da li traženi dokument postoji – Ovo je dodatni stepen zaštite servera. Druga i treća linija koda iz našeg primjera provjerava postojanje fajle (-f) i direktoriaj (-d). Ukoliko tražena fajla i direktorij uistinu postoje na serveru tek onda će ostatak koda da se aktivira i ako sve radi kako treba umjesto hotlinkovane slike na drugoj web stranici će se pojaviti hotlink.jpg.

HOTLINK ZAŠTITA S DOZVOLOM ZA SVE VARIJANTE VLASNIKOVOG URL

Sledeći primjer je hotlink zaštitni kod koji je dizajniran tako da blokira sve ali dozvoljava pristup svim varijacijama vlasnikovog URLa uključujući www, bez www, IP adrese i port 80 protokol.

# hotlink protection allowing all source urls
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://domain.tld.*$            [NC]
RewriteCond %{HTTP_REFERER} !^http://www.domain.tld.*$        [NC]
RewriteCond %{HTTP_REFERER} !^http://domain.tld:80.*$         [NC]
RewriteCond %{HTTP_REFERER} !^http://www.domain.tld:80.*$     [NC]
RewriteCond %{HTTP_REFERER} !^http://123.123.123.123.*$       [NC]
RewriteCond %{HTTP_REFERER} !^http://123.123.123.123:80.*$    [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Pp][Nn][Gg]$ - [F,NC,L]

Ova tehnika ima dva ključna aspekta koji su:

Kompletan pristup izvornom (vašem) domenu – Ova tehnika osigurava da svaka moguća verzija vašeg vlastitog domena ima pristup slikama. Osim blank referrer svi ostali zahtjevi su blokirani. Ovaj cilj se da postići sa puno manje koda što ćemo pokažati u ultimativnoj verziji malo kasnije.

Uključuje sve varijacije fajli sto postoje – Zadnji red koda lista sve nastavke koji se koriste za slike u ovom primjeru uključujući nastavke koji su pisani malim ili velikim slovima ili u kombinaciji što je osnova svake hotlink zaštite. Na sreću [NC] na kraju koda omogućava zaštitu za mala i velika slova bez da svaki nastavak mora da ga ima posebno naglašen.

Dozvola raznim varijantama vlasnikovog domena je veoma važan aspekt kad se radi na zaštiti protiv hotlinkovanja kao i za svaki sub domen.

HOTLINK ZAŠTITA SA DOZVOLOM ZA VIŠESTRUKE DOMENE

Sledeća tehnika dozvoljava pristup domenima kao što su google, yahoo, cache i tri dodatna domena.

# hotlink protection allowing for multiple domains
RewriteEngine on
RewriteCond %{HTTP_REFERER}  .
RewriteCond %{HTTP_REFERER}  !^http://([^.]+.)?domain-01. [NC]
RewriteCond %{HTTP_REFERER}  !^http://([^.]+.)?domain-02. [NC]
RewriteCond %{HTTP_REFERER}  !^http://([^.]+.)?domain-03. [NC]
RewriteCond %{HTTP_REFERER}  !search?q=cache               [NC]
RewriteCond %{HTTP_REFERER}  !google.                      [NC]
RewriteCond %{HTTP_REFERER}  !yahoo.                       [NC]
RewriteCond %{REQUEST_URI}   !^/hotlink.jpg$               [NC]
RewriteRule .(gif|jpg|png)$ http://domain.tld/hotlink.jpg  [R,NC,L]

Ova korisna tehnika nam dozvoljava da dodamo domene kojima želimo da damo pristup slikama. To je važno jer nam je potrebno da su slike prikažane u Feedu i na prijateljskim web stranicama. Ključni dijelovi ovog koda su:

Bolji “blank-referrer” pristup – svaka ozbiljna strategija ima pristup za “blank-referrer” zahtjeve. blank referrer su obično asocirani sa firewalima, direktnim zahtjevima, drugim ISP kompanijama osim vaše i sličnim zahtjevima. Osim ako imate dobar razlog protiv, dozvola blank-referrerima je preporučena kao obavezna. To se postiže upotrebom [^.]+.)? što znači “nije blank”. Ovaj primjer koristi semantički korektan “.” (tačku) koja predstavlja bilo koji znak.

Komprehezivan pristup za višestruke domene, subdomene – Prateći mustru predstavljenu u prva 3 reda u kodu, mi možemo dozvoliti pristup bilo kojem sajtu koji želimo. Još bolje, svi subdomeni asociranog domena su uključeni upotrebom regexa [^.]+.)?, koji uključuje sve subdomene.

Dozvola za Google, Yahoo i cache – Davanje dozvole vaznim tražilicama omogučava prikaz slika tamo gdje je važno, gsje se potencijalni posjetioci nalaze.

Dozvola univerzalnog pristupa ka hotlink.jpg slici – Često vlasnik web stranice želi da ima neku ružnu ili upozoravajuću sliku koja če da se prikaže na websajtu koji pokuša da hotlinkuje. Da bi ta slika bila prikazana, važno joj je dati univerzalan pristup.

STREAMLINED, UPROŠTENA HOTLINK ZAŠTITA

Konačno, evo primjera koji je efektivan i jednostavan:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9]+.)?domain.tld [NC]
RewriteRule .(gif|jpe?g|png)$ - [F,NC,L]

Mada jednostavan, ovaj metod nam daje dva važna aspekta:

Alternativni regex za subdomene – prijasni kod je davao dozvolu svim domenima jednom tehnikom, ovaj kod koristi alternativu. Obadvije metode su uspješne i dobre za imati na raspolaganju.

Kondenzirani nastavci – ovaj primjer demonstrira način konsolidacije i pojednostavljene liste nastavaka koristeći ?. Upitnik kaže da je slovo e u jpe opcionalno slovo i na taj način svaka slika koja ima nastavak koji počinje sa jp bez obzira kako završava je uključena u zaštitu.

VARIJANTE KODA I OPCIJE U KONFIGURACIJI

Treba znati da postoje razni načini formuliranja direktiva u htaccessu, pogotovu kad je uključen i Apache mod_rewrite. Evo nekoliko verzija kodova korištenih u predhodnim primjerima.

Optimizacija liste zabranjenih fajli

U predhodnim kodovima smo koristili listu zaštićenih nastavaka slika ovako:

RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Pp][Nn][Gg]$ - [F,NC,L]

Pojednostavljen kod izgleda ovako:

RewriteRule .([Jj][Pp][Gg]|[Gg][Ii][Ff]|[Pp][Nn][Gg])$ - [F,NC,L]

U redu, ova druga verzija je bolja ali može još bolje. Vidiš li NC u zagradi? To kaže Apache da ne obraća pažnju na to da li neko piše nastavak malim ili velikim slovima. Što će nam onda mala i velika slova u kodu? Tačno, ne trebaju nam! Sad možemo da to uklonimo i isti kod napišemo ovako:

RewriteRule .(jpg|gif|png)$ - [F,NC,L]

Puno, puno bolje – ali može i bolje. Možemo napisati kod koji će štititi sve verzije .jpg slika (jpg, jpeg i jpe) sa gif i png.

RewriteRule .(jpe?g?|gif|png)$ - [F,NC,L]

Ako želite da dodate više nastavaka kao što su tif, bmp ili pic samo ih dodajte koristeći pipe simbol |. (Pipe simbol se da napisati tako što kliknete na “Shift” i znak u isto vrijeme). Na primjer:

RewriteRule .(jpe?g?|gif|png|bmp|tiff?|pic)$ - [F,NC,L]

Naravno, možete dodati i druge nastavke. hajde da uključimo neke multimedija i Mikrosoft dokumente:

RewriteRule .(jpe?g?|gif|png|bmp|tiff?|pic|mp3|doc|xls)$ - [F,NC,L]

Različite reakcije na htlink zahtjeve

u većini slučajeva kad blokirate nešto, server reaguje pokazivanjem “403- Forbidden” greškom koja kaže da je pristup zabranjen. To je dobar način zabrane ali u nekim situacijama biste možda htjeli da odgovorite nekom drugom slikom kojoj se hotlinker ne nada.

Recimo da slici dajete ime hairy-hole onda u zadnju liniju koda stavite ovo:

# serve em a macro shot of your hairy hole

RewriteRule .(jpe?g?|gif|png)$ http://www.domain.tld/hairy-hole.jpg

Sad naravno treba deblokirati sliku koja se zove hairy-hole. To se radi tako što se sledeći kod stavi direktno ispred Rewriterule:

# ensure access to your hairy hole jpg

RewriteCond %{REQUEST_URI} !^/hairy-hole.jpg$ [NC]

Ili ako želite da hotlink spamera pošaljete na stranicu koja specificira vaša hotlink pravila, onda napravi tu stranicu i pošalji ih tamo:

# send em a web page explaining your hotlink policy

RewriteRule .(gif|jpe?g|png)$ http://www.domain.tld/hotlink-

policy.html

Konačno, ukoliko se bojite da vam server neće korektno prikažati sliku, onda pripremite više verzija slike za svaki format. Na primjer, ako zaštićujete jpg, gif i png slike onda napravite hairy-hole.jpg, hairy-hole.gif, and hairy-hole.png. Kad ste to napravili promijenite zadnju liniju koda u:

# serve em a copy of your hairy hole with a matching file type

RewriteRule .(jpg|gif|png)$ http://domain.tld/hairy-hole.$1 [F,NC,L]

Sad da vidimo kako izgleda kompletan kod koji koristi ovu tehniku:

# serve hotlinkers a macro shot of your hairy hole
RewriteEngine on
RewriteCond %{HTTP_REFERER}  !^$
RewriteCond %{HTTP_REFERER}  !^http://([a-z0-9]+.)?domain.tld [NC]
RewriteCond %{REQUEST_URI}   !^/hairy-hole.                    [NC]
RewriteRule .(jpg|gif|png)$ http://domain.tld/hairy-hole.$1    [F,NC,L]

Serviraj lažnu 404 stranicu

Izvanredan način za zbunjivanje lopova je serviranje vještačke 404 stranice. Za to še koristi sledeći kod:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([a-z0-9]+.)?domain.tld      [NC]
RewriteRule ^(.*).(gif|jpg|png)$ http://domain.tld/404.php?$1.$2   [NC,L]

Ubaci ga u htaccess i onda napravi 404.php u korijenu sajta (možeš i drugdje ali onda promijeni kod da odgovara novoj lokaciji). U prazan 404.php ubaci sledeći kod:

<?php header("HTTP/1.0 404 Not Found"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>404 Not Found</title></head>
<body><h1>404 Not Found</h1>
<p>The requested URL /<?php if ($_SERVER['QUERY_STRING']) : echo
$_SERVER['QUERY_STRING']; endif; ?> was not found on this server.</p>
<p>Additionally, a 404 Not Found error was encountered while trying to use an
ErrorDocument to handle the request.</p>
</body></html>

Zaštiti svoj sigurni domen

Ukoliko nešto prodajete i imate osiguran (htpps://) domen onda možete da s malo promjena u kodu zaštitite dodatno svoj sajt. Da bi to uradili treba da dodate opcionalni s karakter “s?” poslije http porcije u HTTP_REFERRER koji prezentira zaštićeni sajt. evo primjera:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://([a-z0-9]+.)?domain.tld [NC]
RewriteRule .(gif|jpe?g|png)$ - [F,NC,L]

KONAČNO, ULTIMATIVNA HOTLINK STRATEGIJA ZAŠTITE

Sad kad smo upoznali sve varijacije kodova i direktiva vrijeme je za konačan kod. Umjesto jednog koda ovdje su dva: jedan koji zahtjeva minimalne promijene i drugi koji obuhvata praktično sve, dakle imamo:

  • Kompletna zaštita sajta – minimalne izmjene
  • Sveobuhvatna zaštita – dozvoljava pristup višestrukim sajtovima, vašem IPu itd.

PRVA VERZIJA – Kompletna zaštita sajta

Ukoliko vam je cilj da zaštitite kompletan sajt i sve subdomene, kopiraj kod ispod i stavi ga u htaccess u korijenu sajta:

# ultimate hotlink protection
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_REFERER}     !^$
 RewriteCond %{REQUEST_FILENAME} -f
 RewriteCond %{REQUEST_FILENAME} .(gif|jpe?g?|png)$           [NC]
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+.)?domain. [NC]
 RewriteRule .(gif|jpe?g?|png)$                             - [F,NC,L]
</ifModule>

Da bi koristili ovaj kod potrebno je da napravite samo jednu izmjenu. Izbrišite riječ “domain” i upiši svoj domen. Samo domen bez www i bez .com, .net i slično.

Ovaj kod je dizajniran da zaštiti sledeće tipove fajli: jpg, .jpeg, .jpe, gif, i png. Ako želite da dodate više vrsta fajli kao što si .ico ili .pdf dodaj ih ovako: “|ico” iza “|png” u 6oj i 8oj liniji koda.

DRUGA VERZIJA – Sveobuhvatna zaštita a la carte

Za one koji žele pouzdanu, fleksibilnu soluciju za hotlink problem, sledeći kod obuhvata kompletan spektar raznih funkcionalnosti. Da bi zadovoljili sve potrebe, pojedini dijelovi koda su blokirani upotrebom znaka #. Pored toga, uključeni su komentari za razne dijelove koda sa objašnjenjima raznih opcija. Uzmi kod, pročitaj komentare i mijenjaj po volji:

###############################
# ultimate hotlink protection #
###############################

# disable directory browsing
# uncomment this option to protect access to directories
# Options -Indexes

# enable the following of symlinks
# uncomment this option if hotlink protection fails to work
# Options +FollowSymLinks

# verify presence of mod rewrite
<IfModule mod_rewrite.c>

 # enable the rewrite engine
 RewriteEngine on

 # check that file exists
 RewriteCond %{REQUEST_FILENAME} -f

 # check for requested file types
 # include additional file types here
 RewriteCond %{REQUEST_FILENAME} .(gif|jpe?g?|png)$                [NC]

 # allow blank referrer requests
 RewriteCond %{HTTP_REFERER}     !^$

 # allow all requests from your domain
 # edit the domain to match your own
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+.)?domain.      [NC]

 # allow all requests from your ip address
 # edit the ip address to match your own
 RewriteCond %{HTTP_REFERER}     !^https?://123.123.123.123(.*)$ [NC]

 # additional site access
 # include additional sites here replace domain names and or
 # remove unnecessary lines or add new lines for more sites
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+.)?domain_01.   [NC]
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+.)?domain_02.   [NC]
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+.)?domain_03.   [NC]

 # search engine access
 # include or remove search engines feed readers and other sites
 RewriteCond %{HTTP_REFERER}     !search?q=cache                   [NC]
 RewriteCond %{HTTP_REFERER}     !google.                          [NC]
 RewriteCond %{HTTP_REFERER}     !yahoo.                           [NC]

 # allow access to all requests for your anti hotlink image
 # to serve an image instead of delivering a 403 error
 # uncomment the next line and edit the path and file name
 # RewriteCond %{REQUEST_URI}    !^/hotlink.jpg$                   [NC]

 # deliver the hotlink image for all requests for the listed files
 # protect additional file types by editing the list below
 # if you are serving a file instead of a 403
 # uncomment the next line and edit the path and file name
 # RewriteRule .(gif|jpe?g?|png)$ http://domain.tld/hotlink.jpg    [R,NC,L]

 # return a 403 error when any of the following file types is requested
 # you can protect additional file types by editing the list below
 RewriteRule .(gif|jpe?g?|png)$                                  - [F,NC,L]

# close the module container
</ifModule>

U principu, obadvije gore navedene hotlink zaštitne metode su iste, koriste ista htaccess pravila. Prva verzija vam daje fundamentalnu funkcionalnost za svakodnevnu i jednostavnu upotrebu. Druga verzija isto tako štiti sajt uz dodatnu fleksibilnost sa mogućnošću strategijske upotrebe koda.

Ukoliko znate nešto što ja ne znam i mislite da se kod može poboljšati, dodajte svoje ideje u komentaru ispod.

ZAKLJUČAK

Nadam se da će ovaj članak biti od koristi i pomoći razumjevanju hotlink zaštite putem htaccessa kako početnicima tako i iskusnijim vlasnicima web stranica. prije nego što testirate da li kod radi, očistite cache jer se zna dešiti da se umjesto izmjene pojavi slika koja je cached u serveru.

Oni koji imaju htaccess u wordpresu treba da stave hotlinking kod ispred postojećeg wordpress koda ukoliko primjete da hotlink zaštita ne radi.

DOWNLOAD GOTOV HTACCESS I 404 KOD

Htaccess kodovi i kod za 404 page možete skinuti ovdje u zip formatu. Izaberite kod koji želite i obrišite ostatak.

Slični članci

Leave a Comment

Previous post:

Next post: