Как реализована защита от нечестного голосования?

В NorrCompetition защита от нечестного голосования (накрутка голосов) зависит от того, как настроен компонент.

По умолчанию пользователи не имеют права голосовать. Чтобы дать им такую возможность, необходимо зайти в Настройки компонента > вкладка Права доступа и разрешить пользователям выбранной группы голосовать за участников (выставить "Голосовать" в Разрешено).

Итак, основной уровень защиты - предоставить право "Голосовать" только зарегистрированным пользователям. Когда пользователь голосует, сначала проверяется его ID, и если пользователь еще не голосовал, ID записывается в таблицу голосов.

Уровни защиты ниже предназначены для случаев, когда мы даём право "Голосовать" незарегестрированным пользователям.

Второй уровень защиты – проверка IP-адреса. Когда пользователь голосует, сначала проверяется его IP-адрес, и если пользователь еще не голосовал, IP-адрес записывается в таблицу голосов. Для включения этой опции зайдите в Настройки компонента > вкладка Конкурс и установите параметр "Проверка IP" в значение Да.

Но, существует несколько проблем при проверке IP:

  • 1. У многих пользователей динамические IP-адреса
  • 2. Несколько пользователей используют один и тот же IP-адрес (например, различные организации). Для решения этой проблемы можно установить проверку комбинации IP+User-Agent
  • 3. Пользователь может использовать прокси-сервер для подмены IP-адреса

Третий уровень защиты – проверка cookie. Когда пользователь голосует, компонент генерирует специальный cookie и записывает его в браузер пользователя. При наличии такого cookie пользователь не может проголосовать. Для включения этой опции зайдите в Настройки компонента > вкладка Конкурс и установите параметр "Проверка cookie" в значение Да.

Проблема проверки cookie в том, что пользователь может либо стереть файл cookie, либо просто проголосовать с другого браузера.

Ещё одной защитой является Captcha. Вы можете включить её отображение и защитить голосование от ботов. Captcha работает только на странице участника. Обратитесь к документу Настройка отображения участника.

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