PHP防XSS 防SQL注入的代碼

jopen 9年前發布 | 1K 次閱讀 PHP

作為開發人員時刻要記住一句話,永遠不要相信任何用戶的輸入!很多時候我們的網站會因為我們開發人員寫的代碼不夠嚴謹,而使網站受到攻擊,造成不必要的損失!下面介紹一下如何防止SQL注入!

這里提供了一個函數,用來過濾用戶輸入的內容!使用POST傳值的時候,可以調用這個函數進行過濾!

    /**

 * 過濾參數
 * @param string $str 接受的參數
 * @return string
 */
static public function filterWords($str)
{
    $farr = array(
            "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU",
            "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
            "/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|dump/is"
    );
    $str = preg_replace($farr,'',$str);
    return $str;
}

/**
 * 過濾接受的參數或者數組,如$_GET,$_POST
 * @param array|string $arr 接受的參數或者數組
 * @return array|string
 */
static public function filterArr($arr)
{
    if(is_array($arr)){
        foreach($arr as $k => $v){
            $arr[$k] = self::filterWords($v);
        }
    }else{
        $arr = self::filterWords($v);
    }
    return $arr;
}</pre> 


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!