【发布时间】:2017-07-05 07:45:35
【问题描述】:
建议永远不要信任用户并在将所有输入存储到数据库之前对其进行过滤,以避免sql注入等。
用户密码呢?我应该在存储它们之前进行任何类型的消毒吗?如果我这样做了,用户输入他们的密码登录可能与经过清理的版本不匹配。
(密码在存储前已加密)。
最佳做法是什么?
【问题讨论】:
-
不要将普通密码存储在数据库中。而是使用随机盐在 HMAC 上迭代大约 100 毫秒,然后将盐与哈希一起保存。使用
PBKDF2(又名Rfc2898DeriveBytes)、password_hash/password_verify、Bcrypt等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。保护您的用户很重要,请使用安全的密码方法。
标签: database security passwords