2009-08-29 4 views
4

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

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

Что еще?

ответ

5

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

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

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

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

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

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

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

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

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

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

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

2

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

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

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

0

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

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

0

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

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

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

Network Address Translation (или NAT) позволяет нескольким пользователям использовать один IP-адрес для доступа в Интернет.

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

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

+0

Я верю, что NAT * * очень сильно используется. По крайней мере, по моему опыту. В каждой сети рабочего места, с которой я столкнулся, используются частные IP-диапазоны и маскировка NAT/IP. – codeape

+0

NAT, который часто используется в таких местах, как университеты, которые идентифицируют конкретного пользователя, не так. Поскольку NAT разрушает подход TCP/IP (что любой IP-адрес должен идентифицировать одну станцию), используя его, может иметь побочные эффекты, подобные этому, и любой администратор хочет использовать NAT, чтобы принять ограничения, которые будут вынуждены его/ее пользователям. – Isaac

+0

Re: _NAT не используется тяжело_ _ «Мы выяснили, что более 90% DSL-линий используют шлюзы NAT для подключения к Интернету и что 10% линий DSL имеют несколько хостов, которые одновременно активны. до 52% строк имеют несколько хостов. В наших выводах указывается, что использование IP-адресов в качестве идентификаторов хостов может приводить к существенным ошибкам и поэтому должно использоваться с осторожностью ». _ - http://www.icir.org/gregor/ paper/pam11-nat.pdf – Molomby

1

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

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

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

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

+0

Я думаю, что лучше блокировать определенный IP (не весь диапазон IP). потому что пользователи могут обманывать другие решения, но вы не можете изменить свой IP-адрес! в худшем случае они могут использовать несколько прокси-сайтов для голосования более одного раза. – Isaac

+0

@ Исаак: На самом деле, если у вас динамический IP, у вас есть только определенное время, например, час. После этого вы получаете новый IP-адрес, и, хотя большую часть времени вы получаете то же, что и раньше, он может очень сильно измениться. Кроме того, все, кто находится за брандмауэром, используют один и тот же IP-адрес, поэтому на одном IP-адресе могут быть сотни пользователей. – Guffa

Смежные вопросы