变量安全过滤,防止xss攻击


下面这个方法不管是字符串还是数组,都可以进行过滤

/** * @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('"','&quot;',$string);    // 将 " 转义为html实体
    $string = str_replace("'",'',$string);            // 过滤 '
    $string = str_replace('"','',$string);            // 过滤 "
    $string = str_replace(';','',$string);            // 过滤 ;
    $string = str_replace('<','&lt;',$string);        // 将 < 转义为html实体
    $string = str_replace('>','&gt;',$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 攻击


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM