2009-11-26 4 views
2

Я строю систему опроса PHP/MySQL, и мне было интересно, есть ли более безопасный метод, чем установка cookie + сохранение IP-адреса пользователя и последующая проверка их.Защита системы опроса PHP/MySQL

спасибо.

ответ

0

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

+2

Кто-нибудь еще есть сотни адресов электронной почты? –

+0

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

+0

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

0

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

2

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

1

Да, пользователь/пропуск - единственный способ. Если вы хотите, чтобы это было очень просто при использовании аутентификации пользователей, используйте Facebook Connect. В настоящее время почти у всех есть FB, и в few minutes вы можете запустить его.

+0

BTW, IP-адрес может измениться. С моей ADSL, которая происходит почти каждый день. – Sergi

1

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

Но если вам нужен простой голос без регистрации только способом:

  • На стороне клиента используйте что-то более стойкое (смотреть на https://github.com/samyk/evercookie)
  • На стороне сервера - хранить всю возможную информацию о голосовании гостя пользователь (OS, браузер и т. д.)
  • Выполнение простых эвристических или условий для этих данных (если os, IP и некоторые параметры одинаковы, это может быть один и тот же пользователь)
  • Не допускайте коротких временных голосов (Если ОС, IP и метрика же и время меньше, чем Х секунд)
  • Log максимального рода информации и адаптировать вашу систему
  • Правильно сообщить пользователю, что происходит, т.е. Ваш голос был отклонен, поскольку Вы уже голосовали и т. д.
  • Откажитесь от странных голосов (без ОС и т. д.)
  • Используйте индексы MySQL, где это уместно!
  • Вы также можете хэширования некоторую часть информации и поиска только те же самые хэши (IP, ОС, браузер)
Смежные вопросы