原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html1.1.1 摘要日前,國內最大的程序員社區CSDN網站的用戶數據庫被黑客公開發布,600萬用戶的登錄名及密碼被公開泄露,隨后又有多家網站的用戶密碼被流傳于網絡,連日來引發眾多網民對自己賬號、密碼等互聯網信息被盜取的普遍擔憂。網絡安全成為了現在互聯網的焦點,這也恰恰觸動了每一位用戶的神經,由于設計的漏洞導致了不可收拾的惡果,驗證了一句話“出來混的,遲早是要還的”,所以我想通過專題博文介紹一些常用的攻擊技術和防范策略。SQL Injection也許很多人都知道或者使用過,如果沒有了解或完全沒有聽過也沒有關系,因為接下來我們將介紹SQL Injection。
1.1.2 正文SQL Injection:
1.1.1 摘要日前,國內最大的程序員社區CSDN網站的用戶數據庫被黑客公開發布,600萬用戶的登錄名及密碼被公開泄露,隨后又有多家網站的用戶密碼被流傳于網絡,連日來引發眾多網民對自己賬號、密碼等互聯網信息被盜取的普遍擔憂。網絡安全成為了現在互聯網的焦點,這也恰恰觸動了每一位用戶的神經,由于設計的漏洞導致了不可收拾的惡果,驗證了一句話“出來混的,遲早是要還的”,所以我想通過專題博文介紹一些常用的攻擊技術和防范策略。SQL Injection也許很多人都知道或者使用過,如果沒有了解或完全沒有聽過也沒有關系,因為接下來我們將介紹SQL Injection。1.1.2 正文SQL Injection:就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意)的SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。首先讓我們了解什么時候可能發生SQL Injection。假設我們在瀏覽器中輸入URL www.sample.com,由于它只是對頁面的簡單請求無需對數據庫動進行動態請求,所以它不存在SQL Injection,當我們輸入www.sample.com?testid=23時,我們在URL中傳遞變量testid,并且提供值為23,由于它是對數據庫進行動態查詢的請求(其中?testid=23表示數據庫查詢變量),所以我們可以該URL中嵌入惡意SQL語句。現在我們知道SQL Injection適用場合,接下來我們將通過具體的例子來說明SQL Injection的應用,這里我們以pubs數據庫作為例子。我們通過Web頁面查詢job表中的招聘信息,job表的設計如下:圖1 jobs表接著讓我們實現Web程序,它根據工作Id(job_id)來查詢相應的招聘信息,示意代碼如下:////// Handles the Load event of the Page control.