在 PHP 中,当松散类型比较导致完全不同的值被评估为相等时,就会发生魔术哈希攻击,从而导致密码“匹配”而实际上不知道密码。这是一个例子:
<?php
if (hash('md5','240610708',false) == '0') {
print "'0' matched " . hash('md5','240610708',false);
}
如果执行此操作,您将看到:
'0' matched 0e462097431906509019562988736854
这在使用松散相等==
运算符比较两个哈希的 JavaScript 应用程序中是否可行?
JavaScript 是一种弱类型语言,所以我自然会假设可以利用类型强制,因此存在各种安全漏洞。