變量安全過濾,防止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