Подлинная уникальная идентификация ПК на веб-сайтах на основе HTML - PullRequest
3 голосов
/ 20 ноября 2010

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

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

Моей естественной первой идеей было сохранение GUID в локальной базе данных для каждой машины и отправка его вместе с запросом, но если взглянуть на документацию хранилища google gears, вы обнаружите, что база данных не зашифрована и может быть легко подделана (прикрепляя файл sqllite - это все, что требуется и может быть выполнено с использованием различных инструментов).

Что я недавно думал, так это то, что наверняка есть способ рассчитать сигнатуру, которая повторяется для каждой машины, но уникальна, используя только javascript? До сих пор реализация этого ускользнула от меня (если бы существовал только navigator.userAgent.uniqueID - хотя он не сделал бы много для конфиденциальности).

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

Любые идеи будут оценены.

1 Ответ

1 голос
/ 20 ноября 2010

Ваша идея использовать GUID в локальной базе данных не плохая идея. Вы могли бы расширить это далее, позволив серверу выдавать GUID для локальной БД при подключении. Затем сохраните действительный идентификатор GUID для репликации на сервере. Если этот компьютер начинает процесс репликации с идентификатором GUID, который совпадает с действительным идентификатором GUID на сервере, он получит разрешение на отправку своих данных. Кроме того, вы можете время от времени истекать и переиздавать GUID с локальными базами данных. Наконец, я также хотел бы управлять количеством идентификаторов GUID, выпущенных для одного пользователя. Если пользователь проходит аутентификацию с именем пользователя jdoe, единственное лицо, которому разрешено использовать GUID, выданный jdoe, это jdoe. (Возможно, имя пользователя не лучший вторичный идентификатор, но использование чего-то подобного может помочь вам предотвратить ввод ложных данных в систему)

...