Являются ли файлы cookie единственным способом запретить пользователям повторять действия на веб-сайте без пользователей? - PullRequest
0 голосов
/ 16 апреля 2009

Я создаю веб-сайт и не хочу иметь пользователя / членство.

Однако люди, использующие сайт, могут делать такие вещи, как голосование и помечать сомнительный контент. Является ли единственный способ идентифицировать и предотвратить повторное использование пользователями файлов cookie?

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

Предложения по этому сценарию?

Ответы [ 8 ]

4 голосов
/ 16 апреля 2009

Ну, вы можете отобразить cookie + ip-адрес в канале данных в вашей базе данных. Для идентификации пользователя. Поэтому, если ip существует в базе данных, вы просто добавляете cookie, но сначала проверяете cookie, чтобы избежать ненужных вызовов базы данных.

Хотя это не оптимально, поскольку школы и т. Д. Могут иметь одинаковые ips на многих компьютерах.

Вы всегда можете просто адаптировать openid!

1 голос
/ 16 апреля 2009

+ 1 На все, что уже сказали другие. Вот еще одна промежуточная идея:

Использование файлов cookie в качестве основного средства ограничения голосования. Если файл cookie не найден, проверьте IP-адрес. Разрешить не более, скажем, 1 голос за 5 минут с одного и того же IP.

1 голос
/ 16 апреля 2009

Марко и Визаж верны,

Просто добавьте, что каждый голос может быть сохранен с отметкой времени, IP и т. Д., Поэтому, по крайней мере, если кто-то попытается «сыграть» на вашем сайте, вы сможете откатить наборы голосов, сделанные из того же места или в течение очень короткого промежутка времени (например, из бота)

0 голосов
/ 16 апреля 2009

Вы можете добавить переменные GET и части URL-адреса для использования в качестве файлов cookie - некоторые сайты делают это, чтобы разрешить вход в систему и / или отслеживание, когда файлы cookie отключены. Сгенерируйте деталь, используя исходный IP и строку агента пользователя, например.

site.com / голосовать? Куки = 123456

site.com / голос / cookie123456

0 голосов
/ 16 апреля 2009

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

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

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

Если пользователь с другим файлом cookie, но с тем же IP-адресом, делает то же самое, он может исходить от прокси / брандмауэра, поэтому вы можете проявить осторожность и заставить его сделать что-то дополнительное, например простую CAPTCHA. Как только они это сделают, если они будут вести себя должным образом, ничего нового не потребуется, пока их новый файл cookie остается с ними.

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

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

0 голосов
/ 16 апреля 2009

Даже с членством пользователь может зарегистрироваться несколько раз и голосовать.

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

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

К сожалению, другого пути нет.

0 голосов
/ 16 апреля 2009

Печенья недостаточно, как вы сказали, их можно очистить / истек срок действия.

Отслеживание IP-адреса также недоступно из-за DHCP и брандмауэров.

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

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

0 голосов
/ 16 апреля 2009

Да, вы правы.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...