2012-03-14 2 views
0

Я хочу создать сайт, который я придумал, но я не хочу, чтобы пользователи регистрировались. Вместо этого я хочу какой-то уникальный идентификатор, который можно получить с помощью PHP. Этот уникальный идентификатор может быть подключен к сети, которую они используют, или к их компьютеру.Как я могу аутентифицировать пользователей, не заставляя их регистрироваться?

Одна из идей, о которых я думал, заключалась в том, чтобы получить пользователей HWID и использовать это. Это возможно?

Может ли кто-нибудь дать мне преимущества и недостатки этого, а также дать мне несколько примеров того, что я мог бы использовать?

+0

Почему бы вам просто не использовать OpenID, то же самое, что вы использовали для этого веб-сайта? –

+0

это называется cookie :) Но сначала вам нужно знать php. И программирование. И компьютеры: P – Spyros

+0

@ N.B. Я действительно не хочу использовать сторонний код. Я предпочитаю делать вещи сам и узнавать об этом одновременно. –

ответ

4

То, что вы описываете, очень похоже на сеансы PHP. Пользователю предоставляется уникальный идентификатор, а на стороне сервера уникальный идентификатор присваивается переменным (в виде $_SESSION суперглобальных). Затем пользователь будет отправлять уникальный идентификатор с каждым запросом (будь то с файлом cookie или переменной get), а PHP будет извлекать переменные и устанавливать правильный массив $_SESSION.

Это несколько проблематично с точки зрения безопасности. Идентификатор сеанса может быть украден (например, через небезопасный WiFi), а затем сервер ошибочно идентифицирует злоумышленника как жертву (в случае администрирования и ограниченного доступа это проблематично). Ничто не сравнится с хорошей комбинацией имени пользователя/пароля, чтобы защитить область.

Если конфиденциальная информация не хранится, то все сеансы являются очень хорошим решением.

See the PHP manual about sessions.


Следует отметить, однако, если пользователь удалит его куки (если идентификатор сеанса передается через куки) или очистить URL от переменных (в случае переменной GET), сеанс истечет, и пользователь больше не будет распознан. Сервер не может полностью идентифицировать клиента. Что делать, если пользователь будет форматировать/переключать компьютеры? Или что, если он хочет использовать вашу услугу с другого компьютера? Если это так, то вы хотите использовать систему регистрации и входа в систему.

+2

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

+0

Да, я только что добавил эту информацию. В этом случае вы хотите что-то более постоянное, такое как регистрация и логин. –

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