关于 php htmlspecialchars函数
htmlspecialchars函数
htmlspecialchars Convert special characters to HTML entities
将特殊字符转化为HTML实体,该函数可以有效的保证页面的安全,防止注入脚本。
输出链接:
当输出一个url地址的时候,我们可以使用此函数来生成链接,虽然其在页面源代码中会将 “&”转化为”&” 之类,但是页面展示,及链接功能没有任何问题。为了方便说明,我们构造如下两个页面:
a.php代码如下:
echo "<a href="$demo_url" target="_blank">link</a>";
b.php用来接收参数代码如下:
如上面的例子,在浏览器里面的展示为:注意看,页面源代码中的特殊符号是被转义的,但是鼠标放在链接上时,显示的链接地址为:http://localhost/b.php?a=1&b=2&c=3

htmlspecialchars 输出链接
在b.php接收结果如下:
array(3) { ["a"]=> string(1) “1″ ["b"]=> string(1) “2″ ["c"]=> string(1) “3″ }
header跳转:
我们再来看一下header跳转,加上htmlspecialchars有何结果:
同样,构造如下页面
c.php代码如下:
header('Location:'.$demo_url);
结果如下:

htmlspecialchars header 跳转
大家看地址栏,和var_dump的结果,显然不是我们想要的。
结论:
在使用htmlspecialchars的时候,输出是没有问题的,跳转的话,我们就需要只给各个参数的值加上urlencode。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/08/11/1331/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
房顶。。
[回复]
呵呵,阅毕~~
[回复]
这个东西貌似很强大啊
[回复]
WC去么?http://2009.wordcampchina.org/beijing2009/attendees
[回复]
哇….怎么一天这么多课…
[回复]
@bolo
嗯。强大不一定,但是是有用的。呵呵。
[回复]
@小Bee
昨天写的多了些。呵呵。。
[回复]
@老饕
你咋不把自己的链接也加上呢?害我找了好久。呵呵。
[回复]
@Showfom
去。看你也得去啊。。呵呵。
[回复]
这个函数不错。发文章有用
[回复]
我刚去完回来! :o
[回复]
htmlspecialchars 好像不能完全防止脚本注入。
[回复]
@华晨
可以的,输出的变量东西都加一下,是可以有效的。呵。
[回复]
@simaopig
我不太清楚,可能是吧。
[回复]