Хеширование и меры безопасности в PHP - PullRequest
1 голос
/ 03 февраля 2012

Я читал о том, как внедрить защиту в веб-сайт с помощью хеширования, и я не создаю что-то ужасно чувствительное, например, банк или хранение кредитных карт. Я хотел бы, однако, узнать лучшие практики. Мой сайт имеет сертификат TLS с AES 256

Основные выпуски:

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

2.) Должен ли я просто полностью отключить свой алгоритм перед хэшированием пароля или использовать другие методы хеширования?

Можно ли использовать sha512 до или после bcrypt, поскольку оба они являются надежными в отношении столкновений и грубой силы?

1 Ответ

1 голос
/ 03 февраля 2012

Лично я просто пароли SHA512 для хранения и сравнения при входе в систему, а для отслеживания сеанса я храню ключ hash('sha512', $username.$salt.$password);, этот ключ сохраняется в сеансе и сравнивается с ключом пользователя в базе данных для аутентификации их сеанса.

Я еще не сталкивался с какими-либо проблемами безопасности, поэтому невозможно подделать ключ, если вы не знаете имя пользователя, пароль и соль пользователя (которые, очевидно, не должны храниться в базе данных), поэтому он должен быть защищен до тех пор, пока кто-то не получит доступ как к вашей базе данных, так и к вашему коду (в этом случае у вас больше проблем, чем при защите паролей пользователей;))

...