Как я могу запретить пользователям голосовать более одного раза в 1 час? - PullRequest
7 голосов
/ 07 июня 2011

На данный момент у меня есть скрипт с CAPTCHA, который при отправке регистрирует IP-адрес пользователя, чтобы пользователь не мог голосовать более одного раза в час.

Однако многие люди используют прокси-серверы, чтобы обойти это ограничение голосования, и я хотел бы использовать дополнительную защиту.

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

Спасибо за любую помощь

РЕДАКТИРОВАТЬ: я не хочу, чтобы заставить пользователей войти

Ответы [ 5 ]

6 голосов
/ 07 июня 2011

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

  • Размещение файлов cookie на компьютере пользователя
  • Журнал их IP
  • Хранение контента в локальном хранилище (только для пользователей с браузерами HTML5)
  • Если вы действительно хотите начать копать глубже, вы можете начать устанавливать ограничения, основанные на продолжительности сеанса пользователей, на скольких страницах они просматривали до голосования, т. Е. Начать профилировать пользователей, которые пытаются обойти систему, и начать устанавливать ограничения на этих профилированных пользователей.
2 голосов
/ 07 июня 2011

Вы можете использовать куки, но люди могут их удалить. Самый простой ответ, не заставляя их входить в систему (для чего они могут создать более одной учетной записи, если у них есть несколько электронных писем и т. Д.), Было бы трудно ограничить их, если бы они не могли каким-либо образом обойти это.

1 голос
/ 08 июня 2011
  • Таблицы MEMORY на сервере с IP-адресами

  • evercookie

  • снятие отпечатков браузера

  • требуется регистрация

  • cron задание очищать таблицы один раз в час

  • http://code.google.com/p/mailvalidator/

  • составьте список забаненных доменов

посетите 10 минут почты и скопируйте домен электронной почты и добавьте в список

0 голосов
/ 07 июня 2011

Если «плохие» люди достаточно умны, чтобы использовать прокси, чтобы голосовать против вашей воли или правил, есть вероятность, что они смогут обойти и другие средства защиты ...

Но вотЧто вы можете сделать:

1) Установить cookie на компьютере после голосования, но пользователи могут удалить cookie вручную

2) Принять учетные записи пользователей для голосования, подтвержденные по электронной почтеадрес, но пользователи могут создавать альтернативные учетные записи пользователей

2bis) Учетная запись пользователя может получить право голоса только через 24 часа, может не подходить для вашего приложения

3) Как переполнение стека, реализуетмеханизм репутации в учетных записях пользователей, поэтому они смогут голосовать только после того, как докажут, что они не просто боты или альтернативные личности

0 голосов
/ 07 июня 2011

Вы против того, чтобы пользователи регистрировались на вашем сайте, чтобы голосовать? Я бы сказал, сделать это на основе учетной записи, а не IP. Многие пользователи могут быть за NAT, который назначит им все тот же внешний IP (думаю, работа или школа). В этом случае я бы сказал, что таблицы с четырьмя столбцами будет достаточно: идентификатор пользователя, идентификатор опроса, время голосования, выбор. Если такая же комбинация идентификатора пользователя / идентификатора опроса существует и время больше, чем сейчас, минус один час, не позволяйте им голосовать

...