有文章還說注入式攻擊還會有“第三波”攻擊潮,到時候會更加難以察覺,連微軟的大佬都跑出來澄清說與微軟的技術與編碼無關,微軟為此還專門推出了三個檢測軟件,那么這個SQL注入式攻擊的漏洞究竟是怎么造成的呢?
正如微軟的大佬所說的,是由于網站程序的開發人員編碼不當造成的,不光是ASP、ASP.NET,也包括JSP、PHP等技術,受影響的也不僅僅是Access和SQL Server數據庫,也包括Oracle和MySql等其他關系數據庫,和人家微軟沒什么關系。事實上不光是基于B/S架構的系統或網站存在這樣的問題,基于C/S架構的系統也存在這樣的問題,只不過由于C/S架構的特點決定了不可能像B/S系統這樣影響這么廣泛。那么為什么說這個問題是開發人員編碼不當造成的呢,下面我們就來具體分析。
首先讓我們來看一下以下這四條SQL查詢語句
語句1:select * from news where newstype=1
語句2:select * from news where newstype=1;drop table news
語句3:select * from news where newstype='社會新聞'
語句4:select * from news where newstype='社會新聞';drop table news--'
大家都知道語句1的作用是查詢news表中newstype字段值等于1的所有記錄,其中newstype字段的類型是一種數值型,比如Int、SmaillInt、TinyInt、Float等等;語句2實際上是兩條語句,第一條的作用和語句1的作用相同,第二條的作用是刪除數據庫中的news表。語句3和語句4的功能和語句1、語句2的基本相同,所不同的是語句3、4里的newstype字段是字符型的,比如:char、varchar、nvarchar、text等等
不管是在ASP還是ASP.NET還是JSP或PHP,一般我們都會采用“select * from news where newstype=”+v_newstype的方法來構造語句1,或者“select * from news where newstype='”+v_newstype+"'"來構造語句3,其中v_newstype是一個變量,如果v_newstype的值等于1,構造出來的就是語句1了,如果v_newstype的值等于"社會新聞",構造出來的就是語句3了,但是很不幸的是如果我們忽略了對v_newstype的檢查,通過這個方法構造出來的也可能是語句2或者語句4,比如v_newstype的值為“1;drop table news”或“社會新聞';drop table news--”,如果我們的疏忽讓別人給利用了,就會給我們造成巨大的損失,SQL注入式攻擊正是利用了我們的這個疏忽,所以說SQL注入式攻擊的根源來自開發人員的編碼不當和你所使用的平臺、開發工具以及系統架構等等都沒有任何直接的關系。
既然SQL注入式攻擊是由于編碼人員編碼不當造成的,那究竟怎么樣的編碼才是恰當的編碼才不會受到SQL注入攻擊呢,下一篇我們將繼續介紹。
SQL 注入式攻擊的本質
2019-11-04 15:47mssql教程網 Sql Server
SQL 注入式攻擊,又是注入式攻擊,沒想到2008年這個老掉牙的東西又出來攪風攪雨,更沒想到的是這么老掉牙的東西居然還能跑出來攪風攪雨,而且造成了如此大的破壞
延伸 · 閱讀
- 2022-03-09sql語句中union的用法與踩坑記錄
- 2022-03-09SQL利用游標遍歷日期查詢的過程詳解
- 2022-03-08SQL刪除重復的電子郵箱力扣題目解答流程
- 2022-03-07CSRF攻擊是什么?如何防范CSRF攻擊?
- 2022-03-03SQL行轉列與列轉行
- 2022-03-03一篇學會 Hive SQL 參數與性能調優
- Sql Server
深入SQLServer中ISNULL與NULLIF的使用詳解
本篇文章是對SQLServer中ISNULL與NULLIF的使用進行了詳細分析介紹,需要的朋友參考下 ...
- Sql Server
SQL2005 存儲過程解密方法
SQL2005 存儲過程解密方法,需要的朋友可以參考下。...
- Sql Server
SQLServer 數據庫的數據匯總完全解析(WITH ROLLUP)
乍一看,好像很容易,用group by好像能實現?但仔細研究下去,你又會覺得group by也是無能為力,總欠缺點什么,無從下手。那么,到底該如何做呢?別急,...
- Sql Server
三種SQL分頁查詢的存儲過程代碼
三種SQL分頁查詢的存儲過程代碼,需要的朋友可以參考下。 ...
- Sql Server
SQL_Server全文索引的用法解析
SQL Server全文索引相信大家都有一定的了解,下面就為您介紹SQL Server全文索引的用法及相關的語句,希望可以讓您對SQL Server全文索引能有更深的認識 ...
- Sql Server
SQLServer2005 批量查詢自定義對象腳本
SQLServer2005 批量查詢自定義對象腳本,使用系統函數object_definition和系統表 sysobjects 就可以了 ...
- Sql Server
SQL JOIN 連接詳細介紹及簡單使用實例
這篇文章主要介紹了SQL JOIN 連接詳細介紹及簡單使用實例的相關資料,需要的朋友可以參考下 ...
- Sql Server
SQLServer2005創建定時作業任務
這篇文章主要為大家介紹了SQLServer2005創建定時作業任務的詳細過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ...