1. 程式人生 > >變量安全過濾,防止xss攻擊

變量安全過濾,防止xss攻擊

轉義 javascrip dai post ash time return 空格 去除

下面這個方法不管是字符串還是數組,都可以進行過濾

/**
 * @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 攻擊

變量安全過濾,防止xss攻擊