PHP内置过滤函数
Abstract: 本周写的新闻管理系统未对用户输入做出相应的判断,存在大量的漏洞,这篇文章特地总结了php
内置过滤函数。
一、SQL注入过滤函数
1. addslashes()
定义和用法
addslashes(string)
函数返回在预定义的字符前添加反斜杠的字符串。
预定义字符是:
单引号(‘)
双引号(“)
反斜杠()
NULL
参数 | 描述 |
---|---|
string | 必需。规定要转移的字符串。 |
1 |
|
2. mysql_escape_string()
在PHP5.3中已经弃用mysql_escape_string()
mysql_escape_string()
并不转义%
和_
1 |
|
3. mysql_real_escape_string()
定义和用法
mysql_real_escape_string(str, con)
函数转义SQL语句中使用的字符串中的特殊字符。
受影响的字符:
- \x00
- \n
- \r
- \
- ‘
- “
- \x1a
若成功,返回被转义的字符串,否则,返回false
。
参数 | 描述 |
---|---|
string | 必需。规定要转义的字符串。 |
connection | 可选。规定MySQL连接。未规定,则使用上一个连接。 |
1 |
|
二、XSS过滤函数
1. htmlspecialchars()
定义和用法
htmlspecialchars()
函数把预定义的字符转换成HTML
实体。
1 |
|
参数 | 描述 |
---|---|
string | 必需。规定要转义的字符串。 |
2. strip_tag()函数
定义和用法
strip_tags(string, allow)
函数剥去字符串中的HTML
、XML
以及PHP
的标签。
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
allow | 可选。规定允许的标签。这些标签不会被删除。 |
1 |
|
三、命令执行过滤函数
1. escapeshellcmd()
定义和用法
在Windows下过滤方式是在字符前面加上一个^符号;在Linux是在字符前加上反斜杠(\)
1 |
|
2. escapeshellarg()
定义和用法
给所有参数加上一对双引号,强制为字符串。
1 |
|