• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 著名的SQL流量注入(SQL注入)攻擊法

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    之所以舊事重提,只是想給那些還沒接觸到的人提個醒,順便聽聽眾位高手們的看法,好學習學習。 我們在編程過程中,經常會把用戶輸入的數據拼成一個 SQL 語句,然后直接發送給 服務器 執行,比如: string SqlStr = select * from customers where CompanyNam

    之所以舊事重提,只是想給那些還沒接觸到的人提個醒,順便聽聽眾位高手們的看法,好學習學習。


    我們在編程過程中,經常會把用戶輸入的數據拼成一個SQL語句,然后直接發送給服務器執行,比如:

    string SqlStr = "select * from customers where CompanyName Like '%" + textBox1.Text + "%'";

    這樣的字符串連接可能會帶來災難性的結果,比如用戶在文本框中輸入:

    a' or 1=1 --

    那么SqlStr的內容就是:

    select * from customers where CompanyName like '%a' or 1=1 --%'

    這樣,整個customers數據表的所有數據就會被全部檢索出來,因為1=1永遠true,而且最后的百分號和單引號被短橫杠注釋掉了。

    如果用戶在文本框中輸入:

    a' EXEC sp_addlogin 'John' ,'123' EXEC sp_addsrvrolemember 'John','sysadmin' --

    那么SqlStr的內容就是:

    select * from customers where CompanyName like '%a' EXEC sp_addlogin 'John','123' EXEC sp_addsrvrolemember 'John','sysadmin' --

    這個語句是在后臺數據庫中增加一個用戶John,密碼123,而且是一個sysadmin賬號,相當于sa的權限。

    如果用戶在文本框中輸入:

    a' EXEC xp_cmdShell('format c:/y') --

    運行之后好像是格式化C盤!

    還有很多更危險的操作,不過都沒試過。還是存儲過程好用啊,存儲過程的參數把用戶的輸入當成真正的字符串處理,既安全,又快速!

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>