Выявление анонимных пользователей - PullRequest
4 голосов
/ 29 августа 2009

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

Допустим, посетитель с IP 123.34.243.57 заходит на сайт и голосует. Тогда будет ли безопасно отказать кому-либо из 123.34.243. * В голосовании? Это хорошая стратегия?

Что еще?

Ответы [ 5 ]

5 голосов
/ 30 августа 2009

Это фундаментальная проблема для всех сайтов для голосования в Интернете, и вы просто решаете проблему.

То, как вы это сформулировали, «вы хотите, чтобы каждый визит был разрешен только один [голос]» означает, что вы хотите разрешить им голосовать один раз, когда они открывают свой браузер и заходят на сайт. Я не думаю, что это действительно то, что вы ищете.

Я подозреваю, что вы хотите, чтобы данный человек Человек мог голосовать только один раз (за опрос, может быть).

Проблема в том, что, как только вы правильно сформулировали вопрос, проблема становится намного более ясной. Вы не пытаетесь идентифицировать интернет-узел (IP-адрес), посещение (сеансовый файл cookie), экземпляр браузера (постоянный файл cookie) или компьютер (также трудно идентифицировать).

Вы можете использовать техники с файлами cookie, и они были подходящими для обычного пользователя. Подорвать эту технику так же легко, как - Очистить ваши куки в браузере, - Запрет куки в браузере, - открытие другого браузера, - Ходить на другой компьютер, - используя анонимайзер, - ... бесконечные другие пути.

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

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

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

Второй метод, требующий доверенной платформы, основывается на аппаратном обеспечении после определенного заранее определенного поведения. Вы можете, например, создать сайт голосования, который работает через XBox 360 или iPhone. Вы должны создать приложение, которое установлено на одном из этих устройств. Основываясь на способе защиты платформы, вы можете использовать характеристики уникальности, такие как аппаратный адрес или Live ID на XBox 360 или аппаратный адрес или номер телефона на iPhone, чтобы получить общую уверенность в том, что пользователь тот же, кто посетил раньше. Поскольку у вас есть контроль над приложением, а пользователь, в частности, не имеет, в силу характера доверенной платформы, вы имеете разумную уверенность в том, что большинство пользователей не смогут подорвать намерения приложения.

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

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

2 голосов
/ 30 августа 2009

Использование публичного IP для этого, вероятно, было бы плохой идеей. Если вы используете этот подход, уникальные посетители из одной и той же корпоративной локальной сети будут выглядеть как один пользователь.

Возможно, печенье? Я считаю, что это то, что большинство сайтов используют.

В сочетании с каким-либо видом мониторинга, автоматическим или ручным (например, анализ файла журнала). С подозрением относитесь к шаблонам трафика, которые указывают на сценарий.

1 голос
/ 30 августа 2009

Нет, вы не можете использовать IP-адрес или IP-адреса для идентификации уникальных пользователей. По нескольким причинам:

  1. Остановка всего промежутка остановит пользователей, которые не голосовали.
  2. Люди, которые получают IP-адрес динамически, позже получат другой IP-адрес.
  3. Люди в локальной сети (например, большая компания) имеют один и тот же общедоступный IP-адрес.

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

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

0 голосов
/ 30 августа 2009

Вы должны заблокировать только этот конкретный IP, а не весь диапазон IP!

Если у вас нет регистрации, это лучшее решение, но не для пользователей!

Вы можете запретить кому-либо голосовать несколько раз. но вы также можете заблокировать некоторых других пользователей от голосования, и это из-за NAT.

Трансляция сетевых адресов (или NAT) позволяет нескольким пользователям использовать один IP для доступа в Интернет.

Но это нормально, потому что NAT не используется интенсивно, и лишь немногие пользователи не смогут участвовать в голосовании.

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

0 голосов
/ 30 августа 2009

блокировка диапазона IP-адресов не является хорошей стратегией, вы можете иметь 2 варианта, чтобы идентифицировать уже проголосовавшего пользователя, его IP и cookie. после того, как они проголосовали, установите cookie и не позволяйте им голосовать снова.

они могут очистить cookie и изменить IP-адрес, но это приемлемо для анонимного голосования, если вы хотите лучшую стратегию, позвольте им зарегистрироваться для голосования

...