У меня есть задача создать опрос. Идея этого опроса должна быть видна на веб-сайте, но без пользователей. Вам не нужно регистрироваться, чтобы отвечать на опрос. Однако мне нужно сделать так, чтобы после голосования один раз вы не могли голосовать дважды. Это не очень сложно и что-то, что я часто видел на новостных сайтах.
Общее решение для этого - cookie. Вы сохраняете информацию в файле cookie, и если они отправляют ответ, вы храните эту информацию в файле cookie, и все хорошо.
Однако я хочу сделать что-то еще лучше - я хочу сделать это, если вы откроете Chrome и проголосуете, а затем откройте Mozilla, вы не сможете снова проголосовать.
Первое, что пришло в голову, - это использовать IP-адрес, но тогда... что, если у вас несколько компьютеров на одном соединении? Как в большом офисном здании?
Это означает, что мне нужно что-то уникальное для одного конкретного компьютера независимо от его интернет-соединения.
Пришло в голову использовать что-то конкретное и уникальное для генерации идентификатора для файла cookie. Это означает, что, используя что-то уникальное, я создам идентификатор, который всегда будет одинаковым для конкретного компьютера, независимо от того, в каком браузере и вне зависимости от его соединения. Вы можете удалить файл cookie, а затем, когда я создам новый, он будет создан с тем же идентификатором, и я смогу узнать, что кто-то с этим компьютером уже проголосовал за опрос.
Мой вопрос - что уникально для компьютеров, к которым я могу получить доступ через браузер и как? Я использую PHP с Symfony и javascript для Front-end.
Снова я подытожу то, что хочу, - чтобы я мог распознать пользователя (компьютер) без входа в систему, даже если этот пользователь удалил все файлы cookie и переключил браузеры или находится в разных соединениях. Он может использовать VPN или переходить из одной страны в другую и переключать интернет-провайдеров или что-то в этом роде... пока он находится на одном компьютере и компьютер не получил изменений в торможении (исправления, обновления и т.д.), Мне нужно это признать.