sql注入產生原因、危害及解決方案


   當我們訪問動態網頁時,Web 服務器會向數據訪問層發起 Sql 查詢請求,如果權限驗證通過就會執行 Sql 語句。

  這種網站內部直接發送的Sql請求一般不會有危險,但實際情況是很多時候需要結合用戶的輸入數據動態構造 Sql 語句。

  如果用戶輸入的數據被構造成惡意 Sql 代碼,Web 應用又未對動態構造的 Sql 語句使用的參數進行審查,則會帶來意想不到的危險。

  SQL注入攻擊指的是通過構建特殊的輸入作為參數傳入Web應用程序,而這些輸入大都是SQL語法里的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數據,致使非法數據侵入系統。

  根據相關技術原理,SQL注入可以分為平台層注入代碼層注入前者由不安全的數據庫配置或數據庫平台的漏洞所致;

  后者主要是由於程序員對輸入未進行細致地過濾,從而執行了非法的數據查詢。

  基於此,SQL注入的產生原因通常表現在以下幾方面:

  ①不當的類型處理;

  ②不安全的數據庫配置;

  ③不合理的查詢集處理;

  ④不當的錯誤處理;

  ⑤轉義字符處理不合適;

  ⑥多個提交處理不當。

 

sql注入危害

  • 數據庫信息泄漏:數據庫中存放的用戶的隱私信息的泄露。
  • 網頁篡改:通過操作數據庫對特定網頁進行篡改。
  • 網站被掛馬,傳播惡意軟件:修改數據庫一些字段的值,嵌入網馬鏈接,進行掛馬攻擊。
  • 數據庫被惡意操作:數據庫服務器被攻擊,數據庫的系統管理員帳戶被竄改。
  • 服務器被遠程控制,被安裝后門。經由數據庫服務器提供的操作系統支持,讓黑客得以修改或控制操作系統。
  • 破壞硬盤數據,癱瘓全系統。

sql注入解決方案

  1.參數驗證

  2.特殊字符過濾

  3.使用參數化語句,不要拼接sql

  4.編碼輸出

  5.平台過濾

  總之就是要做好過濾與編碼並使用參數化語句,這樣基本能夠解決sql注入漏洞

 

參考:

  https://blog.csdn.net/qq_34638225/article/details/81269281

  https://www.cnblogs.com/huzi007/p/6370732.html

  


免責聲明!

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



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