F6 Team

"用心" by puma

  點部落 :: Home :: Syndication :: 我的收藏 ::  :: Login
  文章數 - 190, 回應數 - 172, 引用數 - 0

News

About Me Search Engine Optimization



用BloggerAds 替自已加薪
用BlogAD 替自已加薪

文章標籤

全部標籤

每月文章

文章分類

推薦討論區

推薦部落格

最近在MSDN看這很多SQL Injection的相關文章...

小弟就把它記錄在我的Blog裡,以後才不會忘記..

說到SQL Injection,為什麼要防址SQL Injection呢...

可以參考 黃忠成 的文章:LINQ - 對付 SQL Injection 的 "免費補洞策略"

接下來就是要實作IHttpModule介面,並且註冊到HttpModule裡

當網站在執行網頁,用到一些參數傳遞時,會先去驗證參數是否有一些特定文字,像是【--】、【 OR 】、【'】、【1=1】

當參數有那些特定文字時,很可能就會讓網站有安全性上的危險,所以遇到那些文字,就跳至錯誤頁面...

範例是參考  Coding techniques for protecting against Sql injection ,詳細內容請至那篇文章瀏覽

首先在App_Code裡加入一個類別SqlInjection.cs,命名空間為Sample



在Web.Config設定HttpModule

執行結果:

 

 

引用URL

 

DotBlogs Tags: ASP.NET IHttpModule SQL Injection
posted on 2008/8/6 00:03 | 我要推薦 | 閱讀數 : 1032 | 文章分類 [ ASP.NET ASP.NET(Security) MS SQL ] 訂閱

Feedback

# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/6 上午 01:10 chhuang 回覆

參考:  How To: Protect From SQL Injection in ASP.NET

PS. 記得某個專案規定所有的程式碼都不能出現 SQL 語法,一律只能呼叫 SP 來執行。



# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/6 上午 01:21 alice 回覆

之前做一各運輸業的整合案,也都是他們那邊的人開好SP,
他們先審核TSQL開成SP給我們使用



# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/6 上午 09:26 Allen Kuo 回覆
我個人認為不宜阻擋,有的人真的要傳入
or
這個字眼,也可能有人輸入了
I'm Allen
阻止別人輸入這些字,可能不太好

# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/6 上午 10:02 rachen 回覆

之前做過類似的東西,起因一個舊系統要全面翻查有時程上得問題,所以只好用IHttpModule先做全面的阻擋。不過排除的字串我是用
regex 去表示 , 比對的 patten 是寫在 web.config 裡,另外在 web.conf 裡預留了排除程式的清單,一般程式應該不會有那些字眼,不過萬一真的有要輸入那些東西的程式,就先列到排除清單,在個案修正輸入檢查。



# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/6 上午 10:14 puma 回覆

這個範例原來還有這麼多的可能性沒考量進來呀....

不過大家的回覆讓小弟又學習到很多的東西...感謝大家的回覆..



# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/6 下午 09:45 phoenix7765 回覆

我覺得 ... 只要不使用連字的方式 創造SQL 就可以避免這個問題了吧

再來判斷 SQL內 是否包含 ' 和 -- 就好

為什麼不用判斷1=1?

因為 駭客也可以打 2=2 a=a 諸如此類 ...

這是 個人認為啦 ~



# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/8/25 上午 03:53 BEN 回覆
SQLParameter
不就會自動幫你做好了嘛?

# re: ASP.NET實作IHttpModule介面讓網頁執行時,驗證特定文字,防止SQL Injection 2008/10/21 下午 06:19 ningin 回覆
你這篇對於httpmodule的實做講解得很清楚
對於httpmodule這方面很不熟悉又急著用 找了很久的範例
終於實做成功 非常感謝您的分享

回應

標題:
姓名:
電子郵件:(將不會被顯示)
個人網頁:
內容: 

登入後使用進階評論
Please add 2 and 4 and type the answer here: