建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛樂網上官網:SQL指令植入式攻擊的危害及其防范措施

?

什么是SQL 指令植入式進擊?

在設計或者掩護Web網站時,你大概擔心它們會受到某些拙劣用戶的惡意進擊。切實著實,如今的Web網站開拓者們針對其站點所在操作系統平臺或Web 辦事器的安然性而展開的評論爭論其實太多了。不錯,IIS 辦事器的安然破綻可能招致惡意進擊;但你的安然反省清單不應該僅僅有 IIS 安然性這一條。有些代碼,它們平日是專門為數據驅動(data-driven) 的 Web 網站而設計的,實際上每每同其它IIS破綻一樣存在嚴重的安然隱患。這些匿伏于代碼中的安然隱患就有可能被稱為“SQL指令植入式進擊” (SQL injection) 的手段所使用而導致辦事器受到進擊。

SQL指令植入式進擊技巧使得進擊者能夠使用Web利用法度榜樣中某些疏于警備的輸入時機動態天生特殊的 SQL指令語句。舉一個常見的例子:

某Web網站采納表單來網絡造訪者的用戶名和密碼以確認他有足夠權限造訪某些保密信息,然后該表單被發送到 Web 辦事器進行處置懲罰。接下來,辦事器真個ASP 腳本根據表單供給的信息天生 SQL 指令語句提交到SQL辦事器,并經由過程闡發SQL辦事器的返回結果來判斷該用戶名/密碼組合是否有效。

為了實現這樣的功能,Web 法度榜樣員可能會設計兩個頁面:一個 HTML 頁面 (Login.htm) 用于登錄,另一個ASP 頁面(ExecLogin.asp) 用于驗證用戶權限(即向數據庫查詢用戶名/密碼組合是否存在)。詳細代碼可能象這樣和記娛樂網上官網:

Login.htm (HTML 頁面)

代碼: Username:

Password:

ExecLogin.asp (ASP 頁面)代碼:

乍一看,ExecLogin.asp 的代碼彷佛沒有任何安然破綻,由于用戶假如不給出有效的用戶名/密碼組合就無法登錄。然而,這段代碼偏偏不安然,而且它恰是SQL 指令植入式進擊的抱負目標。詳細而言,設計者把用戶的輸入直接用于構建SQL 指令,從而使進擊者能夠自行抉擇即將被履行的 SQL 指令。例如:進擊者可能會在表單的用戶名或密碼欄中輸入包孕“ or ”和“=” 等特殊字符。于是,提交給數據庫的 SQL 指令就可能是:

代碼:SELECT * FROM tblUsers WHERE Username= or = and Password = or =

這樣,SQL 辦事器將返回 tblUsers 表格中的所有記錄,而 ASP 腳本將會是以而誤覺得進擊者的輸入相符 tblUsers 表格中的第一筆記錄,從而容許進擊者以該用戶的名義登入網站。

SQL 指令植入式進擊還有和記娛樂網上官網另一種形式,它發生在 ASP 辦事器根據 querystring 參數動態天生網頁時。這里有一個例子,此 ASP 頁面從 URL 中提掏出 querystring 參數中的 ID 值,然后根據 ID 值動態天生后繼頁面:

代碼:

在一樣平常環境下,此 ASP 腳本能夠顯示具有特定 ID 值的文章的內容,而 ID 值是由 URL 中的 querystring 參數指定的。例如:當URL為http://www.example.com/Article.asp?ID=1055 時,ASP 就會根據 ID 為1055的文章供給的內容天生頁面。

猶如前述登錄頁面的例子一樣,此段代碼也向SQL 指令植入式進擊洞開了大年夜門。某些惡意用戶可能會把 querystring 中的文章 ID 值掉包為“0 or 1=1”等內容(也便是說,把 URL 換成http://www.example.com/Article.asp?ID=0 or 1=1) 從而誘使 ASP 腳本天生不安然的SQL指令如:

代碼:SELECT * FROM tblArticles WHERE ID=0 or 1=1

于是,數據庫將會返回所有文章的內容。

當然了,本例辦事器所受的進擊不必然會引起什么嚴重后果。可是,進擊者卻可能變本加厲,比如用同樣的和記娛樂網上官網手段發送 DELETE 等SQL指令。這只必要簡單地改動前述 URL 中的querystring 參數就可以了!例如:任何人都可以經由過程 http://www.example.com/Article.asp?ID=1055; DELETE FROM tblArticles ”之類的URL來造訪Web網站。

SQL指令植入式進擊的迫害

SQL 指令植入式進擊可能引起的迫害取決于該網站的軟件情況和設置設置設備擺設擺設。當 Web 辦事器以操作員(dbo)的身份造訪數據庫時,使用SQL 指令植入式進擊就可能刪除所有表格、創建新表格,等等。當辦事器以超級用戶 (sa) 的身份造訪數據庫時,使用SQL 指令植入式進擊就可能節制全部SQL辦事器;在某些設置設置設備擺設擺設下進擊者以致可以自行創建用戶帳號以完全操縱數據庫所在的Windows 辦事器。

SQL指令植入式進擊

杜絕SQL 指令植入式進擊的第一步便是采納各類安然手段監控來自 ASP request 工具 (Request 、 Request.QueryString 、 Request.Form 、 Request.Cookies 和 Request.ServerVariables) 的用戶輸入,以確保 SQL 指令的靠得住性。詳細的安然手段根據你的 DBMS 而異,下面給出的都是基于 MS SQL Server的例子。

在前述登錄頁面的例子中,腳本期望獲得的兩個輸入變量 (txtUserName 和 txtPassword)均為字符串類型。無論用戶在哪個參數中插入單引號,他都可能讓數據庫履行單引號中的 SQL 指令。為了杜絕此類SQL 指令植入式進擊,我們可以借助 WordStr 函數剔除單引號,比如:

代碼:p_strUsername = WordStr(Request.Form("txtUsername"), "", "")

p_strPassword = WordStr(Request.Form("txtPassword"), "", "")

在第二個例子中,腳本期望的輸入變量是長整型變量 (ID) 。用戶可以經由過程在 ID 參數中插入特殊字符來運行不安然的 SQL 指令。為了為了杜絕此類SQL 指令植入式進擊,我們只必要借助 CLng 函數限定 ID 值為長整型變量,比如: 代碼:p_lngID = CLng(Request("ID"))

當用戶試圖在 ID 中包孕特殊字符時,CLng 就會孕育發生一個差錯。

為了進一步削減SQL 指令植入式進擊的危脅,請務必清除和記娛樂網上官網客戶端差錯信息文本中的所有技巧資料。某些差錯信息每每泄露了技巧細節,從而讓進擊者可以看出辦事器的安然破綻所在。這里指的差錯信息不只包括利用法度榜樣天生的消息框,還包括來自 IIS 的掉足提示。為此,你可以禁止由 IIS 發送的具體差錯信息,而改用自定義的掉足頁面。

著末,為了減輕SQ和記娛樂網上官網L 指令植入式進擊的迫害,請限定 Web 利用法度榜樣所用的數據庫造訪帳號權限。一樣平常來說,利用法度榜樣沒有需要以 dbo 或者 sa 的身份造訪數據庫。記著,給它的權限越少,你的網站越安然!你還可以斟酌分手給每個必要造訪數據庫的工具分配只擁有必需權限的帳號,以分散安然破綻。例如:同是前端用戶界面,當用于公開場應時就比用于具有本地內容治理機制的平臺時加倍必要嚴格限定數據庫造訪權限。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
2015年小本赚钱点子 cba联赛排名 网球比分 同城游麻将辅助 15选5杀号精确科学 香港六合彩特码资料 足球比分下载逛球街1 快乐10分开奖历史数据 星空娱乐棋牌 日本雅虎官网棒球比分