【PHP代码审计】过滤函数

o-O-oO / 2024-10-08 / 原文

一、SQL过滤函数

addslashes()
stripslashes()
addcslashes()
stripcslashes()
mysql_escape_string()
mysql_real_escape_string()
PHP魔术引号

Addslashes()

返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号()、双引号(”)、反斜线()与 NUL(NULL字符)。

stripslashes()

反引用一个引用字符串,如果 magic_quotes_sybase 项开启,反斜线将被去除,但是两个反斜线将会被替换成一个。

addcslashes()

string addcslashes ( string $str , string $charlist )返回字符串,该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。

stripcslashes()

string stripcslashes ( string $str )返回反转义后的字符串。可识别类似C语言的\n,r,…八进制以及十六进制的描述。

mysql_escape_string()

string mysal_escape_string( string $unescaped_string )此函数并不转义%_。作用和 mysql_real_escape_string()基本一样

mysql_real_escape_string()

mysqlrealescapestring($unescaped_string, $link_identifier)调用mysql库的函数 mysqlreal_escape_string,在以下字符前添加反斜

杠:x00\n\r\x1a

PHP魔术引号

当打开时,所有的'(单引号),(双引号),\(反斜线)和NULL字符都会被自动加上一个反斜线进行转义。这和 addslashes()作用完全相同。(1)magic_quotes_gpc

(2)magic_quotes_runtime

二、XSS过滤函数

htmlspecialchars()

htmlspecialchars()函数把预定义的字符转换为HTML实体。

strip_ tags(string,allow)

strip_tags()函数剥去字符串中的HTML、XML以及PHP的标签。

三、命令执行过滤函数

escapeshellcmd()

确保用户只执行一个命令用户可以指定不限数量的参数用户不能执行不同的命令

escapeshellarg()

确保用户只传递一个参数给命令用户不能指定更多的参数一个用户不能执行不同的命令