您的位置 » 首页 » 编程开发 » PHP安全:PHP双引号二次解释引来的安全问题

PHP安全:PHP双引号二次解释引来的安全问题

发表于4年前 | 作者: seay | 分类: 编程开发 | 孵化于:2013年01月06日 | 文章热度:3,801 次 全屏阅读

显示不全请点击全屏阅读

PHP单引号与双引号的区别:

单引号和双引号的唯一的区别就是:

用单引号包起来的PHP解释器不会对其二次解释,而双引号却要二次解释,

看代码:

<?php
$a=8;
$b=8;
echo “$a+b$”.”<br />”;
echo ‘$a+b$’;
?>

这样我们知道了单引号与双引号的区别,但是这样会带来一个安全漏洞

<?php
$a=”${@phpinfo()}”;
?>

确实执行了,那么这就说明.直接赋值的字符串变量尽量用单引号.试试数组呢?

<?php

array(1=>”${@phpinfo()};”)

?>

数组也成功被解析了,这就意味这:作为配置文件,不能或尽量少用双引号,这样很容易被入侵或被恶意攻击。

拓展阅读:

关于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

原文:http://lcx.cc/?i=3117

Tags:

PHP安全,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/1987/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

已经有1个筒子留下了脚印...

  • 独自等待 说:
    1楼
    2013 年 1 月 8 日 下午 8:43 回复

    不错,介绍的比较详细!!! 😈

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)