PHP中 htmlspecialchars() 函数的具体作用
有的时候,我们在做防止注入的时候,都会加上一句这个
htmlspecialchars($value);
但是这样并不是万事大吉了,我们先来看一看这个函数的官方文档中的介绍:
//把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:
显示结果 | 描述 | 实体名称 | 实体编号 |
---|---|---|---|
空格 | |   | |
< | 小于号 | < | < |
> | 大于号 | > | > |
& | 和号 | & | & |
“ | 引号 | " | " |
‘ | 撇号 | ' (IE不支持) | ' |
¢ | 分(cent) | ¢ | ¢ |
£ | 镑(pound) | £ | £ |
¥ | 元(yen) | ¥ | ¥ |
€ | 欧元(euro) | € | € |
§ | 小节 | § | § |
© | 版权(copyright) | © | © |
® | 注册商标 | ® | ® |
™ | 商标 | ™ | ™ |
× | 乘号 | × | × |
÷ | 除号 | ÷ | ÷ |
以上表格是常用的HTML实体字符,可以看出,这个函数确实会能抵挡一些攻击,但是还是会有一些其他的攻击手段,这个函数就无能为力了,所以这时候我们可以再补充一些特换方法,用替换手段来完成过滤函数,举个例子:
$str = str_replace('%', '', $str);
想要完整防止攻击,要做的事情还有很多,这里就不一一举例了
还没有任何评论,你来说两句吧