Poprawne zabezpieczenie przed hotlinkowaniem

Możliwość komentowania Poprawne zabezpieczenie przed hotlinkowaniem została wyłączona 97

Ostatnio obserwuję coraz częstsze zjawisko kradzieży transferu. Mimo, że koszta są coraz mniejsze, to i tak wiele pokemonów próbuje zaoszczędzić tę złotówkę-dwie i pobierają obrazki, czy pliki Flash-a z serwerów nie do nich należących.
Tradycyjna metoda zabezpieczania się przed hotlinkowaniem polega na umieszczeniu kilku linijek w pliku .htaccess blokujących dostęp do pliku jeśli przeglądarka wyśle informację HTTP_Referer; przykład:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?example\.com/ [NC]
RewriteRule .*\.(png)$ /img/zlodziej.jpg [L]

W tym wypadku za każdym razem, kiedy ktoś/coś spróbuje pobrać któryś z plików .png serwer zwróci plik “img/zlodziej.jpg”.

Sposób ten nie działa niestety, jeśli użytkownik korzysta z niektórych serwerów proxy, ma zainstalowany jeden z kilku firewalli (np. Norton), czy też świadomie blokuje te informacje nie chcąc być łatwo śledzony przez systemy szpiegowskie 😉 (przy okazji polecam wtyczkę do FireFoksa – RefControl). Wszystkie te rzeczy blokują/filrtują właśnie informacje o HTTP_Referer.

Blokada referer jest najprostsza, dlatego leniwi webmajsterzy korzystają właśnie z niej. Znacznie lepszym rozwiązaniem jest na przykład zastosowanie mechanizmu sesji. Przedstawię ten sposób w kilku krokach na przykładzie blokady plików PNG.

0. Zakładam, że wszystkie nasze pliki graficzne mamy w katalogu “img”. Plik, który będzie informować o tym, że mamy do czynienia z hotlinkowaniem ma nazwę “img/kradziez.png”.

admin

View all contributions by admin

Similar articles