Thinkphp防止SQL注入
防止SQL注入
對于WEB應用來說,SQL注入攻擊無疑是首要防范的安全問題,系統底層對于數據安全方面本身進行了很多的處理和相應的防范機制,例如:
$User = M("User"); // 實例化User對象 $User->find($_GET["id"]); |
即便用戶輸入了一些惡意的id參數,系統也會強制轉換成整型,避免惡意注入。這是因為,系統會對數據進行強制的數據類型檢測,并且對數據來源進行數據格式轉換。而且,對于字符串類型的數據,ThinkPHP都會進行escape_string處理(real_escape_string,mysql_escape_string)。
通常的安全隱患在于你的查詢條件使用了字符串參數,然后其中一些變量又依賴由客戶端的用戶輸入,要有效的防止SQL注入問題,我們建議:
查詢條件盡量使用數組方式,這是更為安全的方式;
如果不得已必須使用字符串查詢條件,使用預處理機制(3.1版本新增特性);
開啟數據字段類型驗證,可以對數值數據類型做強制轉換;(3.1版本開始已經強制進行字段類型驗證了)
使用自動驗證和自動完成機制進行針對應用的自定
posted on 2014-04-24 10:26 順其自然EVO 閱讀(172) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄