Я пытаюсь запустить мою собственную систему аутентификации в codeigniter и наткнулся на пару блокпостов.
Если у меня есть сеансы, установленные для использования базы данных, пользовательские данные хранятся в базе данных отдельно или в файле cookie? Я хотел бы сохранить хешированный пароль в нем, чтобы проверить загрузку каждой страницы, которую пользователь действительно выполнил с правильным паролем, и я не хочу, чтобы хеш был доступен для клиентов вообще.
Как я могу предотвратить кражу украшений? Я включил проверку IP-адресов и имен хостов, является ли это автоматическим или я должен сам выполнить проверки? Будет ли этого достаточно, чтобы люди не крали данные сеанса?
Userdata
могут храниться в сеансе. Если у вас установлены сеансы для работы с базой данных, единственным файлом cookie будет файл cookie ci_session или все, что вы укажете, а cookie + ip / hostname будет сопоставлено с таблицей сеансов базы данных.
Хранение хэшированного пароля в сеансе будет полностью безопасным, его в вашей собственной базе данных. Нет проблем.
Предотвращение сеансов, которые нужно украсть, следует использовать для сопоставления ip
или hostname
(либо на каждой загрузке страницы, либо немного реже, у некоторых людей есть динамические IP-адреса), не уверен в автоматической проверке, но всегда приятно, если вы проверите сами.
Предотвращение кражи данных сеансов в значительной степени похоже на это. Если кто-то не перехватывает ваш файл cookie и волшебным образом сообщает ложный IP-адрес (или, ну, общий доступ к IP / хосту с целью), этого достаточно. Вы также можете выполнить еще одну проверку, соответствующую user_agent
. Это вам придется делать вручную.
Это почти все.