PHP8字符串数字弱类型更优化

PHP8字符串数字弱类型更优化

这种变化可能对安全漏洞产生了更大的影响。 PHP 8之前,字符串将转换为数字,然后使用==比较或任何弱类型转换时的数字。

例如,PHP 8中此代码的结果为TRUE,0,如PHP 8之后为假和1。

var_dump('a'== 0);

开关('a'){

案例0:

回声0;

休息;

默认:

回声1;

休息;

}

我可以有什么安全问题?我已经解除了一个真正的情况,关于代码是这样的:

$ type = $ _request ['type'];

切换($ type){

情况1:

$ sql =“select * from`y_one_one`,其中`类型'= {$ type}”;

休息;

案例2:

$ sql =“select * from`类型_two`,其中`键入= {$ type}”;

休息;

默认:

$ sql =“select * from`y_default`”

休息;

}

打开发件人认为,当它是1和2时,$类型只会输入SQL语句拼接,但它实际上是输入1和1 = 2输入案例1,导致SQL注入漏洞。

PHP 8完全消除了这种漏洞的产生。

分享到 :

Leave a Reply

Your email address will not be published. Required fields are marked *