Загрузка...

Здравствуйте дорогие читатели блога Site on! В прошлых статьях этого раздела мы разобрались с автоматическим импортом товаров в VirtueMart 2 и убрали мета-тег Generator из Joomla 2.5.

Сегодня мы поговорим о защите сайта, но не защите от кражи или взлома, а о борьбе с личерами и снижении нагрузки на сайт.

Слово «личер» произошло от английского слова leech — «пиявка». Возможно, вы впервые узнали об этом слове в результате использования торрент-трекеров, где личер - это человек, который скачивает файл.

В нашем же ремесле, ремесле вебмастера, личерами называют людей, которые в коде своих сайтов подключают файлы, хранящиеся не на их, а на вашем сервере.

Например, вы используете библиотеку JQuery, которая по умолчанию идёт вместе с VirtueMart. Этот файл библиотеки находится среди остальных файлов вашего сайта. А теперь чтобы понять разницу между вами и личером сравните, как подключаете эту библиотеку вы и он.

Вы:

<script src="/components/com_virtuemart/assets/js/jquery.min.js" type="text/javascript"></script>

Личер:

<script src="http://ваш-сайт.рф/components/com_virtuemart/assets/js/jquery.min.js" type="text/javascript"></script>

Тоже самое можно проделать с любым файлом, например, можно подключать в своих статьях чужие картинки и их даже не придётся скачивать и загружать себе на сервер.

Зачем это делать:

  • Экономия места на собственном сайте;
  • Снижение нагрузки на собственный сервер (но в ущерб скорости загрузки страниц);
  • Экономия времени при воровстве контента;
  • Экономия собственного трафика;
  • Навредить конкуренту, создавая лишнюю нагрузку на его сервер и накручивая его исходящий трафик.

Как бороться с воровством трафика?

Чтобы защититься от всех вышеперечисленных бед нам потребуется потратить ровно 1 минуту. Для этого заходим в наш файл .htaccess, который лежит в корне нашего сайта, и добавляем в него эти строчки:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ваш-сайт.рф [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com.ua [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?images.google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?images.google.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?images.google.com.ua [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yandex.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yandex.ua [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?images.yandex.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?images.yandex.ua [NC]
RewriteRule .(gif|jpg|jpeg|png|swf)$ / [F]

Главное убедитесь, что эти строчки находятся ниже строки:

RewriteEngine On

Более подробно о работе с .htaccess и возможностях mod_rewrite вы можете узнать из статьи про ЧПУ.

Внимание:

Вы должны использовать сервер Апач для обработки изображений! Если вы используете сервер nginx для ускоренной отдачи статических объектов, в частности, картинок – этот способ работать не будет, так как правила .htaccess работают только для веб-сервера Apache.

Такая ситуация у вас может возникнуть, например, если вы, как и я – клиент хостинга «Украина». Этот хостинг-провайдер использует nginx, что, кстати говоря, является плюсом, а не минусом.

В таком случае вам придётся выбирать, что важнее, защитить свой исходящий трафик или снизить нагрузку на Apache, отдавая статику через nginx. Поэтому проблемы нужно решать по мере поступления.

Так вот благодаря новым записям, если кто-то будет воровать наши картинки, то вместо изображений получит ошибку Forbidden 403 (доступ запрещён).

Как результат 403 ошибки – на сайте личера вместо изображения будет показываться текст, записанный в атрибуте alt.

Как защитить картинки от воровства?

Способ выше максимально сохранит ваш трафик, но можно поступить и более остроумно. Например, вместо всех картинок, которые с вас тянут, отдавать вот такую:

картинка

Или название вашего сайта, или рекламу партнёров :)

Для этого нужно слегка изменить последнюю строку:

RewriteRule \.(gif|jpg|jpeg|png|swf)$ bad.jpg [NC]

В данном примере картинка, которая будет подставляться вместо всех украденных, называется bad.jpg и лежит в корне вашего сайта.

{

}