Лучший способ аутентификации в PHP - PullRequest
5 голосов
/ 24 января 2009

Каков наилучший и самый безопасный способ при написании библиотеки аутентификации в режиме модель-представление-контроллер?

Что мешает мне следить за активностью пользователей и запоминать пользователей с помощью файлов cookie или сохранять сеансы в базе данных?

Заранее спасибо:).

Ответы [ 2 ]

4 голосов
/ 24 января 2009

Если вы хотите использовать сеансы, вы защищаете их от таких атак, как фиксация сеанса и захват сеанса .

Чтобы предотвратить и то, и другое, вы должны убедиться, что только аутентифицированным запросам разрешено использовать сеанс. Обычно это делается путем объединения как можно большего количества конкретной (возможно, уникальной) информации о клиенте во время сеанса. Но поскольку некоторая информация может меняться при каждом запросе (например, IP-адрес), найти хорошую информацию может быть сложно.
Вот почему полезно использовать метод, обозначенный как Trending .

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

3 голосов
/ 24 января 2009

Самый простой способ реализовать это - PHP SESSIONS.

just session_start (); в начале вашего скрипта, и у вас есть доступ к глобальному массиву $ _SESSION для хранения ваших данных аутентификации.

В зависимости от конфигурации вашего сервера все данные, хранящиеся в $ _SESSION, будут доступны только на сервере, с которого они размещены (за небольшим исключением). Вы можете настроить его для сохранения во временном каталоге, в memcached или даже в базе данных.

Единственное, что передается между клиентом и вашим сервером, это "сеансовый ключ". Ключ может быть передан с помощью cookie или перезаписью URL (которые прозрачно обрабатываются выходным буфером start_session).

...