用单引号包起来的PHP解释器不会对其二次解释,而双引号却要二次解释,
看代码:
这样我们知道了单引号与双引号的区别,但是这样会带来一个安全漏洞
确实执行了,那么这就说明.直接赋值的字符串变量尽量用单引号.试试数组呢?
数组也成功被解析了,这就意味这:作为配置文件,不能或尽量少用双引号,这样很容易被入侵或被恶意攻击。
拓展阅读:
关于PHP单引号和双引号的区别:
PHP会对用双引号包起来的字符进行解析,例如:
$str = '早上好'; echo $str; //输出:早上好 echo "$str"; //输出:早上好 echo '$str'; //输出:$str
其实在之前的PHP100视频教程里我就讲过,单引号和双引号的区别和效率问题,但还是很多朋友了解的不是很清楚,一直以为PHP中单引号和双引号是互通的,直到有一天,发现单引号和双引号出现错误的时候才去学习研究。
所以今天再拿出来谈谈他们的区别,希望大家不要再为此困惑。
" " 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。
' ' 单引号里面的不进行解释,直接输出。
从字面意思上就可以看出,单引号比双引号要快了。
例如:
$abc = 'my name is tome'; echo $abc //结果是:my name is tom echo '$abc' //结果是:$abc echo "$abc" //结果是:my name is tom
文章来源于lcx.cc:PHP双引号二次解释引来的安全问题
最近的那个dedecms变量覆盖漏洞,最后可以控制全局变量,但不能完全控制 $GLOBALS[$v1] .= $v2; 注意这里是递加的,是在已初始化的全局变量内容上再递加内容。 现在已公开的漏洞利用方法是控制cfg_dbprefix全局变量里的数据库表前缀,…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论