2014-07-31 4 views
0

Я беспокоюсь, что после входа в систему с использованием метода Auth-> login() все данные, относящиеся к Пользователю, хранятся в сеансе, но НЕ являются паролем. Интересно, это нормально? и как я могу конкретно выбрать, какие поля я хочу хранить в сеансе при входе в систему.сеанс cakePHP не сохраняет пароль

+2

Сохранение паролей в сеансах вообще небезопасно, и не должно быть никаких оснований для этого. – Nunser

+0

Хорошо спасибо за ответ, вот что я думал, даже если он хэширован с SALT – user3813360

ответ

0

Повторяя то, что я сказал в комментариях: Сохранение паролей в сеансах небезопасно, и не должно быть никаких причин для этого ,

Действительно, не делайте этого. Не.

Давайте войдем в мир фантазий. Если компонент Auth сохраняет пароль в сеансе, он имеет две возможности: сохранить его как открытый текст или сохранить его хэшированным и соленым.

Сценарий один:
Это будет то же самое, что написать свой пароль на лбу, взять себя в руки и опубликовать его на Facebook (или в новой социальной сети). Любой, кто видит ваш сеанс (это может быть сделано), будет иметь ваш пароль открытого текста. И если пользователь использует один и тот же пароль для всего ... yay free amazon shopping !!

Сценарий два:
это «безопаснее», не являясь открытым текстом. Но самое безопасное? Не давая никому хоть немного информации о пароле. Легче что-то расшифровать, если вы знаете конечный продукт. Значение по грубой силе, если я знаю простой пароль «12345», хэшируется и соленая и производит «i8g04», и у меня одно и то же для многих других пользователей, в конце концов я смогу вывести, какую соль вы использовали и как хэш его. «В конце концов», может быть, смысл вместо 2^58 - это попытка 2-57 грубой силой. Это намного меньше времени и обработки (1.4411519e + 17 согласно google). Итак ... нет, лучше не делать этого. И для чего вы (или торт) используете этот хэш-соленый пароль?

и как я могу конкретно выбрать, какие поля я хочу хранить в сессии при входе в

Я не знаю, как это сделать, есть только один дополнительный параметр в login, так что нет варианты там ... вы могли бы расширить компонент Auth, чтобы добавить функциональность, если хотите ... Но если вы хотите сделать это для чего-то конкретного, возможно, вам будет лучше объяснять свои причины для нас, и мы могли бы дать вам советы о том, как это сделать.

PD: Повторяю, не храните пароли в сеансе.

+0

Ну, я полностью понимаю вашу точку зрения, хотя ваша история очень ОЧЕНЬ маловероятна, поэтому мне нужно снова запросить БД, если я хочу обновить пароль – user3813360

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