Учебник по аутентификации пользователя PHP без сессий - PullRequest
3 голосов
/ 13 февраля 2012

Мне нужно построить собственную систему для части проекта по компьютерной безопасности, не используя php-сессии (только куки-файлы), и я просто потерян.Все учебные пособия, которые я нашел, используют сеансы (по уважительной причине), поэтому мне было интересно, знает ли кто-нибудь об этом.

Ответы [ 3 ]

10 голосов
/ 13 февраля 2012

Вы можете в принципе реализовать что-то вроде сессии.

Это будет включать следующие задачи:

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

Однако следует отметить, что решение, основанное только на файлах cookie, никогда не бывает таким хорошим. Например, если на клиенте не включены файлы cookie, он вообще не будет работать. Возможным решением для этого является отправка идентификатора сеанса в качестве параметра GET с каждой внутренней ссылкой, если файлы cookie не включены.

2 голосов
/ 13 февраля 2012

сессий сделает это намного проще.При этом, где вы застряли, приятель?

Чтобы начать использовать Cookies в PHP, проверьте это: http://www.w3schools.com/php/php_cookies.asp

Вы можете либо

  • реализовать собственную обработку Session, как предлагает s1lence (что может быть именно тем, чего хочет от вас профессор) или
  • реализовать собственную обработку Session путем добавления идентификатора сеанса в QueryString (что делает его работающим для браузеров, не использующих cookie)) или
  • вы можете сохранить пару пользователь / пароль в файлах cookie (что приведет к повторной аутентификации пользователя при каждом запросе)

Я бы не рекомендовал последнее, но есливсе дело в том, чтобы избежать сессионного механизма, это вариант, я думаю.И последнее замечание: если это не имеет никакого отношения к пониманию важности занятия, вы должны поставить под сомнение задачу учителя ...;)

0 голосов
/ 13 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...