似乎 PHP 的 ===
运算符区分大小写。那么有没有理由使用 strcmp()
?
执行以下操作是否安全?
if ($password === $password2) { ... }
原文由 Jiew Meng 发布,翻译遵循 CC BY-SA 4.0 许可协议
似乎 PHP 的 ===
运算符区分大小写。那么有没有理由使用 strcmp()
?
执行以下操作是否安全?
if ($password === $password2) { ... }
原文由 Jiew Meng 发布,翻译遵循 CC BY-SA 4.0 许可协议
if ($password === $password2) { ... }
在比较其中一个输入由用户控制的密码或密码哈希时,这不是一件安全的事情。
在这种情况下,它会创建一个定时预言机,允许攻击者从执行时间差异中得出实际的密码哈希。
使用 if (hash_equals($password, $password2)) { ... }
代替,因为 hash_equals 执行“定时攻击安全字符串比较”。
原文由 Oktokolo 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.5k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答871 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答927 阅读
1 回答912 阅读
1 回答840 阅读
之所以使用它是因为
strcmp
===
只返回true
或false
,它不会告诉你哪个是“更大”的字符串。