Несколько вопросов о сессиях и куки в PHP - PullRequest
3 голосов
/ 23 апреля 2011

Я новичок в PHP, я прочитал много учебников о файлах cookie и сессиях, но некоторые вещи я не понимаю четко:

  1. Значения сессий хранятся всервер, только идентификатор сеанса хранится на компьютере пользователя.Правильно?

  2. Можно ли создать сеанс, который никогда не истекает, который никогда не удаляется с сервера, и сохранить идентификатор сеанса в файле cookie?Если да, то как?(пожалуйста, предоставьте мне код)

  3. Нехорошо хранить такие данные, как пароли, в файлах cookie, потому что файлы cookie не безопасны?Правильно?

  4. Возможно, хакер может создать cookie с идентификатором сеанса другого пользователя?Может ли хакер угадать идентификатор сеанса сеанса или худший, список с каждым идентификатором сеанса?

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

  6. Пожалуйста, предоставьте мне код о том, как я могу сохранить идентификатор сеанса вcookie и как я могу получить доступ к сеансу, если я знаю идентификатор сеанса

Спасибо!

Ответы [ 2 ]

3 голосов
/ 23 апреля 2011

Давайте посмотрим ...

  1. вправо
  2. сеанс, который никогда не истекает?Не совсем хорошая идея:
    • ваша подача будет заполнена старыми, бесполезными сеансами
    • Вместо этого вам следует хранить некоторые данные в долговременном cookie;и использовать этот файл cookie для повторного создания сеанса (например, при автоматическом подключении пользователя), когда пользователь возвращается позже.
  3. файлы cookie действительно не защищены: они хранятся в незашифрованном виде, иПройдите через сеть в незашифрованном виде (если вы не используете HTTS).
  4. Если ваш хакер может получить идентификатор сеанса другого пользователя (как правило, читая его куки), да, он может получить доступ к своемусеанс
  5. Я бы использовал оба: в любом случае, если вы используете сеанс, вам нужен способ сохранить его идентификатор.
  6. сохранить идентификатор сеанса в файле cookie?PHP сделает это за вас, если настроен правильно; -)
1 голос
/ 23 апреля 2011
  1. Да, сеансы PHP хранятся на сервере.
  2. Вы не хотите этого делать.Это пустая трата дискового пространства.
  3. Нет, это нехорошо, поскольку файлы cookie хранятся в незашифрованном виде и в виде открытого текста, и вам никогда не следует отправлять пароль в виде открытого текста обратно пользователю.
  4. Если он знает сеанстогда он мог бы взять на себя сеанс (против этого помогает привязка сеансов к IP-адресу пользователя).Это одна из причин, почему XSS опасен.
  5. Используйте сеанс и сохраните в нем идентификатор пользователя.Нет необходимости использовать отдельный файл cookie, если у вас уже есть файл cookie для сеанса.
  6. Используйте session_set_cookie_params(), если вы хотите изменить настройки файла cookie сеанса;например, чтобы сделать его постоянным.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...