🩹PHP原生过滤方法
过滤函数
escapeshellarg 传入参数添加单引号并转义原有单引号 用于防止命令注入
例 传入 ' id # 处理后 '\' id #' 处理后的字符串可安全的添加到命令执行参数
escapeshellcmd 转义字符串中的特殊符号 用于防止命令注入
反斜线(\)会在以下字符之前插入: &#;`|*?~<>^()[]{}$\, \x0A 和 \xFF。 ' 和 " 仅在不配对儿的时候被转义
来自 <https://www.php.net/manual/zh/function.escapeshellcmd.php>
addslashes 在单引号(')、双引号(")、反斜线(\)与 NUL前加上反斜线 可用于防止SQL注入
mysqli::real_escape_string mysqli::escape_string mysqli_real_escape_string mysql_real_escape_string SQLite3::escapeString
以上函数会在\x00(NULL), \n, \r, , ', " 和 \x1a (CTRL-Z)前加上反斜线 并考虑了当前数据库连接字符集进行处理
注意: 经过以上函数处理后的字符串不可直接用于sql查询拼接 需要使用引号包裹后拼接到sql语句中 否则仍可导致sql注入
PDO::quote 转义特殊字符 并添加引号
PDO::prepare 预处理SQL语句 有效防止SQL注入 (推荐)
htmlspecialchars 和 htmlentities 将特殊字符转义成html实体 可用于防止XSS
intval($input) floatval() floatval() floor() (int)$input num+0 将输入强制转换为整数/浮点 常见于防止SQL注入
防护配置项
最后更新于