來說說 系統引數安全過濾問題。
1.前置條件:
目前伺服器配置:最好是關閉
magic_quotes_gpc =on
2.安全過濾 (行為類):
可直接用阿里雲檔案全域性控制。攔截
3.引數安全過濾和替換:
包含確保轉義過濾(行為類):
確保不論魔術開關是否開啟,進入系統的資料都是轉義過的
參考nc的核心主幹方法。
4.資料庫插入前 字段過濾 處理:
入庫前最終的轉義即可
資料庫過濾 (框架db類庫addslashes( stripslashes()))
綜上,整站防止sql注入方案:
1.全域性安全過濾----全域性攔截
(確保轉義過濾的方法:addslashes( stripslashes())-----無論是on還是off,先去再轉義。還有注意不要二次轉義入庫)
3.如果引數進入沒做轉義,進入資料庫之前做轉義和一些特殊字元的處理(如下)。-----最終確保特殊字元轉義入庫不報錯,特殊字元(按需定義一般是<>等,'或者/一般是允許的)和
**要轉實體,最好不要入庫。
轉義完入庫,資料庫會吃掉轉義符。
$str = stripslashes($str);
if($this->_linkid) else
mysql_real_escape_string()
-----------------------
攔截---危險攻擊**。
替換過濾,html可先去轉義符再轉實體入庫---危險字元。
轉義(重點是在入庫而不是進入) ---入庫不報錯,要麼進來處理要麼入庫前處理,但不要二次轉義。
轉義:
主要是防止一些符號歧義造成資料錯誤。如你要儲存乙個詞don't。如果你的sql語句用單引號引的話就變成'don't',這時t'就沒有意義了,會認為是乙個錯誤語句。另乙個原因是為了防止sql注入攻擊用的
posted @
2016-10-20 13:51
newman·li 閱讀(
...)
編輯收藏
PHP安全 過濾
我們在開發應用時,一般有個約定 不要信任任何來自不受自己控制的資料來源中的資料。例如以下這些外部源 所有這些外部源都可能是攻擊媒介,可能會 有意或無意 把惡意資料注入php指令碼。編寫接收使用者輸入然後渲染輸出的php指令碼很容易,可是要安全實現的話,需要下一番功夫。我這裡以陳咬金的三板斧為引子,給...
php filter 安全過濾函式
php 利用filter 擴充套件編寫的引數處理靜態類,歡迎使用。希望大家看得開心,用得放心。引數驗證函式 method license created 2011年07月02日 11時00分 author martin abstract class cfilter 驗證型別 param string...
php filter 安全過濾函式
php 利用filter 擴充套件編寫的引數處理靜態類,歡迎使用。希望大家看得開心,用得放心。引數驗證函式 method license created 2011年07月02日 11時00分 author martin abstract class cfilter 驗證型別 param string...