Реферальный спам и защита от него на nginx

Реферальный спам и защита от него на nginx

Начиная с конца 2014 года в статистике на многих сайтах стали появляться переходы с реферальными ссылками и 100% отказами.

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

Хочется в это верить, но как говориться «береженного Бог бережет». С помощью простой настройки сервера можно избавится от подобного спама в статистике.

Если Вы используете nginx, то для борьбы со спамом выполните следующее:

  1. В блок http в основном конфиге nginx - /etc/nginx/nginx.conf добавьте директиву map:
    http {
        map $http_referer $bad_referer {
            default 0;
            include /etc/nginx/bad_referer.map;
        }
    
  2. Создайте в категории /etc/nginx файл для хранения плохих сайтов, назовите его bad_referer.map, добавьте в файл правила для блокировки, мой список такой:
    "~*get-your-social-buttons.com" 1;
    "~*snip.to" 1;
    "~*semalt.com" 1;
    "~*copyrightclaims.org" 1;
    

    Домены для бана я смотрел в Google Analytics, пример на картинке ниже.

    google analytics referral spam

  3. В конфиге для сайта добавьте правило для блокировки, у меня конфиг хранится в файле /etc/nginx/sites-available/myitstuff.ru, правило следующее:
      if ($bad_referer) {
          return 444;
      }
    
  4. Перезагрузите nginx:
    /etc/init.d/nginx restart
  5. Проверьте работает правило или нет, для этого в консоли выполните команду:
    curl -e "http://www.copyrightclaims.org" "https://myitstuff.ru"

    Первый домен должен быть из списка блокируемых, а второй вашего сайт. Если вы увидите не html код своего сайта, а сообщение:

    curl: (52) Empty reply from server

    значит защита сработала.

    referral spam protection

    Для выполнения команды проверки нуден cURL, если он не установлен, то установите его:

    apt-get install curl

В итоге при запросе с рефсайтами nginx выдаст 444 ошибку, статистика метрик не сработает, следовательно, подобные ссылки не попадут в статистику. Использование ответа 444, а не более традиционного 301 обусловлено большей скоростью выполнения первого.

Комментарии ()