理解PHP8.0中的类型杂耍是令人困惑的。上面的文档声明没有改变PHP8.0与类型杂耍运算符。举个例子:
# Payload: { 'token': 0 }
$payload = json_decode(json_encode(array('token' => 0)));
$token = 'RaNdOmStRiNg1!';
echo "[PAYLOAD] " . gettype($payload->token) . "({$payload->token}) - ";
echo "[TOKEN] {{$token}} - ";
if($token != $payload->token) {
die('Access Denied');
}
echo 'Access Granted: Type Juggling Bypass';如果我们在3v4l上执行这个操作,我们可以看到在PHP8.0中,!=被当作!==来处理,而在> 8.0中,会发生类型杂耍。
我当前的应用程序使用PHP8.0,为此,在解析JSON时使用==和!==操作符现在安全了吗?这是对PHP的预期更新吗?现在人们将如何指定在需要的地方键入杂耍?
https://stackoverflow.com/questions/65370644
复制相似问题