Прямое устранение обратной связи
Это скорее общая стратегия, которая может сочетаться со многими другими методами. Не позволяйте спамеру знать, если ему это удастся.
Вы можете либо полностью скрыть текущие результаты, только показать проценты без абсолютного количества голосов, либо задержать отображение голосов.
- Pro: хорошо против всех методов
- Con: если мошенничество носит массовый характер, процентное отображение и задержка не будут эффективными
Пометка голосования
Также общая стратегия. Если у вас есть основания полагать, что голос принадлежит спамеру, подсчитайте его голос, отметьте его как недействительный и в конце удалите недействительные голоса
- Pro: хорошо против всех обнаруживаемых спам-атак
- Против: искажает голос, сложнее настроить, ложные срабатывания
Защитный код
Используйте CAPTCHA . Если ваша капча сломана, используйте лучшую.
- Pro: хорошо против всех автоматизированных скриптов.
- Con: бесполезно против фаригуляция
проверка IP
Ограничить число голосов, которые IP-адрес может подать за промежуток времени.
- Pro: Хорошо против случайных парней, которые постоянно нажимают F5 в своем браузере
- Pro: простота реализации
- Con: Бесполезно против Pharyngulation и сложных скриптов, использующих прокси-серверы.
- Con: IP-адрес иногда отображается для разных пользователей
Проверка реферера
Если вы предполагаете, что один пользователь сопоставляет один IP-адрес, вы можете ограничить количество, если проголосуете по этому IP-адресу. Однако это предположение обычно справедливо только для частных домохозяйств.
- Pro: простота реализации
- Pro: в некоторой степени хорошо против простой фарингуляции
- Con: Очень легко обойти с помощью автоматизированных сценариев
Подтверждение по электронной почте
Используйте подтверждение по электронной почте и разрешите только один голос за одно письмо. Проверьте свою базу данных вручную, чтобы увидеть, используют ли они одноразовые электронные письма.
Обратите внимание, что вы можете добавить +foo
к вашему имени пользователя в адресе электронной почты. username@example.com
и username+foo@example.com
будут доставлять почту на одну и ту же учетную запись, поэтому помните, что при проверке, если кто-то уже проголосовал.
- Pro: хорошо против простых спам-скриптов
- Con: сложнее реализовать
- Con: Некоторым пользователям это не понравится
Рандомизация HTML-форм
Рандомизировать порядок выбора. Это может занять некоторое время, чтобы они узнали.
- Pro: приятно иметь в любом случае
- Con: после обнаружения очень легко обойти
HTTPS
Один из способов фальсификации голосования - захватить http-запрос из действующего браузера, такого как Firefox, и скопировать его с помощью скрипта, это не так просто при использовании шифрования.
- Pro: приятно иметь в любом случае
- Pro: хорошо против очень простых скриптов
- Con: сложнее настроить
Проверка прокси
Если спамер голосует через прокси, вы можете проверить заголовок X-Forwarded-For .
- Pro: хорошо против более продвинутых скриптов, использующих прокси
- Con: некоторые законные пользователи могут быть затронуты
Проверка кэша
Попробуйте проверить, загружает ли клиент все некэшированные ресурсы.
Многие спам-боты этого не делают. Я никогда не пробовал это, я просто знаю, что это обычно не проверяется участками голосования.
Примером может быть встраивание <img src="a.gif" />
в ваш html, при этом a.gif будет изображением размером 1x1 пиксель. Затем необходимо установить заголовок http для запроса GET /a.gif
с помощью Cache-Control "no-cache, must-revalidate"
. Вы можете установить заголовки http в Apache с помощью файла .htaccess
, например this . (спасибо Жако)
- Pro: насколько я знаю, необычный метод
- Con: немного сложнее настроить
[Редактировать 2010-09-22]
Evercookie
- Так называемый evercookie может быть полезен для отслеживания спамеров на основе браузера