sql注入原理
sql注入原理就是用戶輸入動態的構造了意外sql語句,造成了意外結果,是攻擊者有機可乘
SQL注入攻擊指的是通過構建特殊的輸入作為參數傳入Web應用程序,而這些輸入大都是SQL語法里的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數據,致使非法數據侵入系統。
根據相關技術原理,SQL注入可以分為平台層注入和代碼層注入。前者由不安全的數據庫配置或數據庫平台的漏洞所致;后者主要是由於程序員對輸入未進行細致地過濾,從而執行了非法的數據查詢。基於此,SQL注入的產生原因通常表現在以下幾方面:①不當的類型處理;②不安全的數據庫配置;③不合理的查詢集處理;④不當的錯誤處理;⑤轉義字符處理不合適;⑥多個提交處理不當。
sql注入危害
- 數據庫信息泄漏:數據庫中存放的用戶的隱私信息的泄露。
- 網頁篡改:通過操作數據庫對特定網頁進行篡改。
- 網站被掛馬,傳播惡意軟件:修改數據庫一些字段的值,嵌入網馬鏈接,進行掛馬攻擊。
- 數據庫被惡意操作:數據庫服務器被攻擊,數據庫的系統管理員帳戶被竄改。
- 服務器被遠程控制,被安裝后門。經由數據庫服務器提供的操作系統支持,讓黑客得以修改或控制操作系統。
- 破壞硬盤數據,癱瘓全系統。
sql注入解決方案
1.參數驗證
2.特殊字符過濾
3.使用參數化語句,不要拼接sql
4.編碼輸出
5.平台過濾
總之就是要做好過濾與編碼並使用參數化語句,這樣sql注入漏洞基本能夠解決呢