下面这个方法不管是字符串还是数组,都可以进行过滤
/** * @purpose : 对变量进行安全过滤,使 $_GET、$_POST、$q->record 等变量更安全 * @author : daicr * @time : 2018-03-15 * @param : array $fArray 需要转换的数组 * @return :array $fArray 转换完成的数组 */ function varFilter ($fArray) { if (is_array($fArray)) { foreach ( $fArray AS $_arrykey => $_arryval ) { if ( is_string($_arryval) ) { $fArray[$_arrykey] = trim($fArray[$_arrykey]); // 去除左右两端空格 $fArray[$_arrykey] = htmlspecialchars($fArray[$_arrykey]); // 将特殊字元转成 HTML 格式 $fArray[$_arrykey] = strip_tags($fArray[$_arrykey]); // 从字符串中去除 HTML 和 PHP 标记 $fArray[$_arrykey] = str_replace(‘javascript‘, ‘javascript ‘, $fArray[$_arrykey]); // 禁止 javascript if (!get_magic_quotes_gpc()) { // 当 magic_quotes_gpc 设置为 OFF 时,特殊字符加转移符 \ $fArray[$_arrykey] = addslashes($fArray[$_arrykey]); } }else if (is_array($_arryval)){ // 如果是数组,递归调用 $fArray[$_arrykey] = varFilter($_arryval); } } } else { $fArray = trim($fArray); // 去除左右两端空格 $fArray = htmlspecialchars($fArray); // 将特殊字元转成 HTML 格式 $fArray = strip_tags($fArray); // 从字符串中去除 HTML 和 PHP 标记 $fArray = str_replace("javascript", "javascript ", $fArray);// 禁止 javascript if (!get_magic_quotes_gpc()) { // 当 magic_quotes_gpc 设置为 OFF 时,特殊字符加转义符 \ $fArray = addslashes($fArray); } } Return $fArray; }
下面这个方法只用于过滤字符串中的一些特殊字符
/** * @purpose : 字符串安全过滤函数,可过滤掉空格,*,",‘,;,<,>,{,},\,../,..,./,UNION等 * @author : daicr * @time : 2018-03-15 * @param : string $string 需要进行过滤的字符串 * @return : string $string 过滤完毕的字符串 */ function strFilter($string) { $string = str_replace(‘%20‘,‘‘,$string); // 过滤 空格 $string = str_replace(‘%27‘,‘‘,$string); // 过滤 ‘ $string = str_replace(‘%2527‘,‘‘,$string); // 过滤 ‘ $string = str_replace(‘*‘,‘‘,$string); // 过滤 * $string = str_replace(‘"‘,‘"‘,$string); // 将 " 转义为html实体 $string = str_replace("‘",‘‘,$string); // 过滤 ‘ $string = str_replace(‘"‘,‘‘,$string); // 过滤 " $string = str_replace(‘;‘,‘‘,$string); // 过滤 ; $string = str_replace(‘<‘,‘<‘,$string); // 将 < 转义为html实体 $string = str_replace(‘>‘,‘>‘,$string); // 将 > 转义为html实体 $string = str_replace("{",‘‘,$string); // 过滤 { $string = str_replace(‘}‘,‘‘,$string); // 过滤 } $string = str_replace(‘\\‘,‘‘,$string); // 过滤 $string = str_replace("../","",$str); // 过滤 ../ $string = str_replace("..","",$str); // 过滤 .. $string = str_replace("./","",$str); // 过滤 ./ $string = str_ireplace("UNION","",$str); // 忽略大小写过滤 UNION return $string; }
对用户输入的字符串进行过滤,以防止 xss 攻击
原文地址:https://www.cnblogs.com/chrdai/p/8575221.html
时间: 2024-10-04 02:07:57