Вопрос

У меня есть сайт-агрегатор блогов

истории отсортированы по количеству посещений

Я думаю, что столкнулся со спамом посещений

потому что истории некоторых блогов получают много посещений за одну секунду с разными IP-адресами

мой сайт не разрешает посещение с одного и того же IP;однако мои посетители каким-то образом меняют свои IP-адреса.

есть ли у них какое-либо решение для обнаружения спам-посещений? Интересно, как Google AdSense решает такую ​​проблему?

Спасибо

Это было полезно?

Решение

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

Однако Вы можете собрать несколько фрагментов информации и объединить их все:

1) Пользовательский агент
2) IP-адрес
3) Заголовок X-Forwarded-For (если доступен)

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

Вы всегда можете загрузить базы данных прокси-серверов с таких сайтов, как antiproxy.com, но правда в том, что большинство хорошо спланированных атак сегодня исходят от узлов ботнетов, которые еще не задокументированы.Вполне возможно, что ваш сайт станет объектом атаки с гетерогенным трафиком, неотличимым от обычных посетителей.

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

Другие советы

С помощью PHP вы можете проверить переменную $_SERVER ["HTTP_X_FORWARDED_FOR"] по IP-адресу, чтобы немного больше убедиться в том, что клиент тот, кем он себя называет.Это поможет идентифицировать людей через некоторые прокси.

Я иногда использую эту функцию.Но, как говорили другие, в 100% случаев может быть сложно получить правильный IP-адрес.

Я не могу вспомнить, откуда я взял эту функцию, но, похоже, в Интернете она довольно распространена.

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

Вы не можете надежно определить IP.

Возможно, оно поступает через прокси-сервер или может быть подделано.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top