国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

什么是SQL注入式攻擊?

2009-11-19 14:08:37 8801

所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁(yè)面請求的查詢(xún)字符串,欺騙服務(wù)器執行惡意的SQL命令。在某些表單中,用戶(hù)輸入的內容直接用來(lái)構造(或者影響)動(dòng)態(tài)SQL命令,或作為存儲過(guò)程的輸入參數,這類(lèi)表單特別容易受到SQL注入式攻擊。常見(jiàn)的SQL注入式攻擊過(guò)程類(lèi)如:
 ?、?某個(gè)ASP.NET Web應用有一個(gè)登錄頁(yè)面,這個(gè)登錄頁(yè)面控制著(zhù)用戶(hù)是否有權訪(fǎng)問(wèn)應用,它要求用戶(hù)輸入一個(gè)名稱(chēng)和密碼。
 ?、?登錄頁(yè)面中輸入的內容將直接用來(lái)構造動(dòng)態(tài)的SQL命令,或者直接用作存儲過(guò)程的參數。下面是ASP.NET應用構造查詢(xún)的一個(gè)例子:
  System.Text.StringBuilder query = new System.Text.StringBuilder(
  "SELECT * from Users WHERE login = ")
  .Append(txtLogin.Text).Append(" AND password=")
  .Append(txtPassword.Text).Append("");
 ?、?攻擊者在用戶(hù)名字和密碼輸入框中輸入"或1=1"之類(lèi)的內容。
 ?、?用戶(hù)輸入的內容提交給服務(wù)器之后,服務(wù)器運行上面的ASP.NET代碼構造出查詢(xún)用戶(hù)的SQL命令,但由于攻擊者輸入的內容非常特殊,所以最后得到的SQL命令變成:SELECT * from Users WHERE login = or 1=1 AND password = or 1=1。
 ?、?服務(wù)器執行查詢(xún)或存儲過(guò)程,將用戶(hù)輸入的身份信息和服務(wù)器中保存的身份信息進(jìn)行對比。
 ?、?由于SQL命令實(shí)際上已被注入式攻擊修改,已經(jīng)不能真正驗證用戶(hù)身份,所以系統會(huì )錯誤地授權給攻擊者。
  如果攻擊者知道應用會(huì )將表單中輸入的內容直接用于驗證身份的查詢(xún),他就會(huì )嘗試輸入某些特殊的SQL字符串篡改查詢(xún)改變其原來(lái)的功能,欺騙系統授予訪(fǎng)問(wèn)權限。
  系統環(huán)境不同,攻擊者可能造成的損害也不同,這主要由應用訪(fǎng)問(wèn)數據庫的安全權限決定。如果用戶(hù)的帳戶(hù)具有管理員或其他比較高級的權限,攻擊者就可能對數據庫的表執行各種他想要做的操作,包括添加、刪除或更新數據,甚至可能直接刪除表。

提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->