1

根据我对散列的一般理解,任何地方的一个更改字符都可以将整个散列扔到另一个球场……这让我开始思考……清理给 PHPass 的密码是个好主意吗?如果在将来的某个 PHP 版本中,他们决定使用其清理功能更改转义的内容,并且某人的密码包含新转义的字符之一,那将导致他们的散列消失并且他们永远无法重新进入(除非重置)。

我意识到潜在的安全风险超过了几次密码重置带来的不便,但我仍然对这一点感到好奇。这是一个合理的担忧吗?

4

1 回答 1

6

我不明白为什么您需要清理密码或大多数数据。您应该清理您的数据以使不安全的使用安全(例如从用户指定的文件中读取)。除此之外,其他一切都应在打印时由 htmlentities($data) 处理,或者在 MySQL 查询中使用 mysql_real_escape_string($data) 处理。永远不需要清理永远不可见或从未以不安全方式使用的数据(即清理数据以使其安全)......它应该被转义。

所以,不要消毒,在适当的地方逃跑……比如打印或查询时。

于 2011-09-03T19:16:09.530 回答