下面這個方法不管是字符串還是數組,都可以進行過濾
/** * @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 攻擊