Блокиране на hotlinking (кражба на трафик)
Какво представлява hotlinking
Голяма част от съдържанието на интернет страниците представлява отделни файлове - JavaScript, CSS файлове, изображения, видео файлове и т.н. Браузърът използва зададените в HTML документа връзки към тези файлове, за да ги зареди и да ги включи в страницата, която ще види потребителя.
Обикновено се използват файлове, които създателят на страницата е сложил на собствения си сайт, но интернет дава възнможност за използване на файлове от съвсем друго място. Пример за това е включването на Youtube видео файлове в интернет страници - това е напълно легално и дори поощрявано от самия сайт Youtube.
Включването на чужи файлове обаче може да бъде и обикновено е чиста проба кражба. Т.нар. hotlinking представлява слагане на връзка към чужди файлове, най-често изображения, които се зареждат на страницата на плагиата. Посетителите на подобна страница виждат съвсем нормални изображения, без да знаят, че те са били заредени от съвсем друг компютър.
Потърпевшият собственик понася двойна загуба - от една страна губи посетители, които вместо на неговата страница, разглеждат изображенията на страницата на крадеца. От друга, изтеглянето на обемистите файлове натоварва неговия сървър. Такава кражба на трафик разбира се е без никаква полза за собственика.
Блокиране на hotlinking с .htaccess
За щастие има лесен начин да предотвратите hot linking към Ваши файлове. Най-разпространеният начин използва някоя вариация на следните .htaccess команди:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} .*jpе?g$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !име_на_домейн1\.com [NC]
RewriteCond %{HTTP_REFERER} !име_на_домейн2\.com [NC]
RewriteCond %{HTTP_REFERER} !име_на_домейн3\.com [NC]
RewriteRule (.*) - [F]
Първият ред включва mod_rewrite на Apache, който е необходим за изпълнение на следващите команди.
На втория ред се задава условие командите да се отнасят само до файлове, чието име завършва с "jpg", "jpeg", "gif", или "png", т.е. изображения. Разбира се, можете да добавите за забрана и други файлове - .js, .css, .mp3 и т.н. Флагът [NC] осигурява валидността на всяка комбинация на главни и малки букви за тези разширения (валидно е както .gif, така и .GIF разширение).
Следва проверка за адреса, от който идва заявката за файловете. Първото условие,
RewriteCond %{HTTP_REFERER} !^$
проверява дали header на заявката не е празен и позволява на хора, които използват такъв header да видят файловете. Второто условие
RewriteCond %{HTTP_REFERER} !име_на_домейн1\.com [NC]
проверява дали препратката към файловете е от Вашия домейн, като отново флагът [NC] позволява всякаква комбинация на малки и глави букви за името на домейна. Не забравяйте да смените "име_на_домейн1" с реалното име на сайта си, както и да сложите "\" пред всяка точка, която се съдържа в името.
Тук бихте могли да добавите други домейн имена - собствени или на сайтове, които нямате нищо против да използват картинките на сайта Ви:
RewriteCond %{HTTP_REFERER} !име_на_домейн2\.com [NC]
RewriteCond %{HTTP_REFERER} !име_на_домейн3\.com [NC]
Ако горните условия бъдат изпълнени, ще се задейства последната команда
RewriteRule (.*) - [F]
която ще наложи забрана за указаните видове файлове - вместо желаните файлове, посетителите на страниците, които ползват hotlinking, ще получат HTTP код за грешка 403 "Forbidden", достъп забранен.
Друг начин за завършване на серията е пращане за зелен хайвер - напр. препратка към някоя гадна картинка:
RewriteRule (.*) /images/bad_boy.jpg [L]
ще достави вместо очакваната картинка, тази на bad_boy.jpg в директория images. Предполага се, че когато плагиатът види как изглеждат страниците му, попълнени вместо с приказните Ви снимки и графики с нещо нелицеприятно, ще се откаже веднъж завинаги от ползването на hotlinking.
Недостатък на този метод на блокиране на hotlinking е, че забраната ще се наложи и над потребители, които следват хипервръзки от редовен сайт към някое от изображенията Ви. Елегантно решение на този проблем е описано в статия от сайта A List Apart
Ако решите, че "как се прави сайт" ръководството може да бъде полезно и за други хора, моля гласувайте за сайта: