标签归档:函数

PHP防注入小论,目前觉得htmlspecialchars挺好

好久没写博客了,也证明好久都没写代码了。
最近不忙,写代码时可停下来试试每个函数的不同和特性。 之前写PHP对于防注入一直不太注意,这次专门对 htmlspecialchars 、htmlentities、addslashes 几个函数使用了一下。。。

htmlspecialchars 将特殊字符转成 HTML 格式,具体的说,函数会转化以下字符:
& (和号) 成为 &
” (双引号) 成为 "
‘ (单引号) 成为 '
< (小于) 成为 &lt;
> (大于) 成为 &gt;

对应的反编码函数为 htmlspecialchars_decode

htmlentities,将所有的字元都转成 HTML 字串
对应的反编码函数 html_entity_decode

注意 :htmlspecialchars最多只能处理4个html标记,htmlentities是转化全部字符,包括中文。

addslashes是使用反斜线引用字符串,该函数一般都是数据库查询之前就需要处理的必要步骤,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(\)与 NULL(NULL 字符)
对应的反编码函数为stripslashes是还原addslashes引用的字符串。

所以这里一般文本输入输出的话使用 htmlspecialchars和htmlspecialchars_decode,有些文本里面有中文的话,又不支持html的话使用 htmlspecialchars 比较实用。
字段查询可能还是使用 addslashes