• <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注入攻擊的種類和防范手段

    發布: 2009-4-20 11:15 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 103次 | 進入軟件測試論壇討論

    領測軟件測試網  觀察近來的一些安全事件及其后果,安全專家們已經得到一個結論,這些威脅主要是通過SQL注入造成的。雖然前面有許多文章討論了SQL注入,但今天所討論的內容也許可幫助你檢查自己的服務器,并采取相應防范措施。

    SQL注入攻擊的種類

            知彼知己,方可取勝。首先要清楚SQL注入攻擊有哪些種類。

    1.沒有正確過濾轉義字符

            在用戶的輸入沒有為轉義字符過濾時,就會發生這種形式的注入式攻擊,它會被傳遞給一個SQL語句。這樣就會導致應用程序的終端用戶對數據庫上的語句實施操縱。比方說,下面的這行代碼就會演示這種漏洞:

    statement := "SELECT * FROM users WHERE name = '" + userName + "'; "

            這種代碼的設計目的是將一個特定的用戶從其用戶表中取出,但是,如果用戶名被一個惡意的用戶用一種特定的方式偽造,這個語句所執行的操作可能就不僅僅是代碼的作者所期望的那樣了。例如,將用戶名變量(即username)設置為:

    a' or 't'='t,此時原始語句發生了變化:

    SELECT * FROM users WHERE name = 'a' OR 't'='t';

            如果這種代碼被用于一個認證過程,那么這個例子就能夠強迫選擇一個合法的用戶名,因為賦值't'='t永遠是正確的。

            在一些SQL服務器上,如在SQL Server中,任何一個SQL命令都可以通過這種方法被注入,包括執行多個語句。下面語句中的username的值將會導致刪除“users”表,又可以從“data”表中選擇所有的數據(實際上就是透露了每一個用戶的信息)。

    a'; DROP TABLE users; SELECT * FROM data WHERE name LIKE '%

            這就將最終的SQL語句變成下面這個樣子:

    SELECT * FROM users WHERE name = 'a'; DROP TABLE users; SELECT * FROM DATA WHERE name LIKE '%';

            其它的SQL執行不會將執行同樣查詢中的多個命令作為一項安全措施。這會防止攻擊者注入完全獨立的查詢,不過卻不會阻止攻擊者修改查詢。

    2.Incorrect type handling

            如果一個用戶提供的字段并非一個強類型,或者沒有實施類型強制,就會發生這種形式的攻擊。當在一個SQL語句中使用一個數字字段時,如果程序員沒有檢查用戶輸入的合法性(是否為數字型)就會發生這種攻擊。例如:

    statement := "SELECT * FROM data WHERE id = " + a_variable + "; "

            從這個語句可以看出,作者希望a_variable是一個與“id”字段有關的數字。不過,如果終端用戶選擇一個字符串,就繞過了對轉義字符的需要。例如,將a_variable設置為:1; DROP TABLE users,它會將“users”表從數據庫中刪除,SQL語句變成:SELECT * FROM DATA WHERE id = 1; DROP TABLE users;

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: sql SQL Sql 攻擊 軟件測試 手段 種類

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>