sql注入定義、原理、攻擊和防護
一、定義
所謂SQL隱碼攻擊,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程式,將(惡意)的SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL語句。比如先前的很多影視網站洩露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL隱碼攻擊。
二、原理
SQL隱碼攻擊指的是通過構建特殊的輸入作為引數傳入Web應用程式,而這些輸入大都是SQL語法裡的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,其主要原因是程式沒有細緻地過濾使用者輸入的資料,致使非法資料侵入系統。
根據相關技術原理,SQL隱碼攻擊可以分為平臺層注入和程式碼層注入。前者由不安全的資料庫配置或資料庫平臺的漏洞所致;後者主要是由於程式設計師對輸入未進行細緻地過濾,從而執行了非法的資料查詢。基於此,SQL隱碼攻擊的產生原因通常表現在以下幾方面:
① 不當的型別處理;
②不安全的資料庫配置;
③不合理的查詢集處理;
④不當的錯誤處理;
⑤轉義字元處理不合適;
⑥多個提交處理不當。
三、攻擊
當應用程式使用輸入內容來構造動態sql語句以訪問資料庫時,會發生sql注入攻擊。如果程式碼使用儲存過程,而這些儲存過程作為包含未篩選的使用者輸入的字串來傳遞,也會發生sql注入。sql注入可能導致攻擊者使用應用程式登陸在資料庫中執行命令。相關的SQL隱碼攻擊可以通過測試工具pangolin進行。如果應用程式使用特權過高的帳戶連線到資料庫,這種問題會變得很嚴重。在一些表單中,使用者輸入的內容直接用來構造動態sql命令,或者作為儲存過程中的輸入引數,這些表單特別容易受到sql注入的攻擊。而許多網站程式在編寫時,沒有對使用者輸入的合法性進行判斷或者程式中本身的變數處理不當,使應用程式存在安全隱患。這樣,使用者就可以提交一段資料庫查詢的程式碼,根據程式返回的結果,獲得一些敏感的資訊或者控制整個伺服器,於是sql注入就發生了。
四、防護
歸納一下,主要有以下幾點:
1.永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以通過正規表示式或限制長度;對單引號和雙"-"進行轉換等。
2.永遠不要使用動態拼裝sql,可以使用引數化的sql或者直接使用儲存過程進行資料查詢存取。
3.永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。
4.不要把機密資訊直接存放,加密或者hash掉密碼和敏感的資訊。
5.應用的異常資訊應該給出儘可能少的提示,最好使用自定義的錯誤資訊對原始錯誤資訊進行包裝。
相關文章
- WEB三大攻擊之—SQL隱碼攻擊與防護WebSQL
- SQL隱碼攻擊原理是什麼?如何防範SQL隱碼攻擊?SQL
- 如何做好防護SQL隱碼攻擊漏洞SQL
- SQL隱碼攻擊原理是什麼?如何防範?SQL
- 滲透測試網站sql注入攻擊與防護網站SQL
- 攻擊面管理預防網路攻擊原理?
- XXE攻擊攻擊原理是什麼?如何防禦XXE攻擊?
- 網站漏洞修復SQL隱碼攻擊防護辦法網站SQL
- 淺析DDOS攻擊防護思路
- 如何利用CDN防護CC攻擊
- CSRF(Cross Site Request Forgery)攻擊原理和防禦ROS
- 反射型 DDoS 攻擊的原理和防範措施反射
- SQL隱碼攻擊——時間盲注SQL
- CSRF攻擊原理及預防手段
- DDoS攻擊、CC攻擊的攻擊方式和防禦方法
- 淺談 CC 攻擊的防護方法
- cc攻擊是什麼?如何防護
- 如何有效防禦DDoS攻擊和CC攻擊?
- 預防SQL隱碼攻擊筆記SQL筆記
- 前端如何預防SQL隱碼攻擊?前端SQL
- CC攻擊的原理是什麼?如何防禦CC攻擊?
- SQL隱碼攻擊基礎原理SQL
- DDOS攻擊原理,種類及其防禦
- 什麼是CC攻擊?如何有效防護?
- 雲安全:防護“工具”還是攻擊“利器”
- 常見的攻擊方式以及防護策略
- 2022年常見攻擊路徑分析和防護建議
- CC攻擊原理是什麼?網站被CC攻擊如何防禦?網站
- web安全之XSS攻擊原理及防範Web
- 被攻擊怎麼解決?DDoS高防IP防護策略
- 防不勝防瞭解DNS快取中毒攻擊原理DNS快取
- 無線網路攻擊有哪些?如何防護?
- CC攻擊的原理是什麼?防禦CC攻擊的方法有哪些?
- SQL隱碼攻擊中二階注入原理SQL
- Java HTTP Host 頭攻擊原理以及如何防禦JavaHTTP
- DDoS 攻擊與防禦:從原理到實踐
- SQL隱碼攻擊分為幾類?如何防禦?SQL
- 跨域攻擊分析和防禦(中)跨域
- 【知識科普】高防伺服器防禦CC攻擊的原理伺服器