thinkphp 防止sql注入


防止SQL注入

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM