昨天剛把資料庫防注入的原型發了上去,發覺好像還漏了點東西,現在把它全部補上.
sql注入是常常被一些菜鳥級黑客高手慣用的手法, 就是基於sql的注入實現, 防注入程式其實就是處理http請求,把get和post的請求資料中做過濾.
通過相應的關鍵字去識別是否有 sql注入攻擊**
string sqlstr = "and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare ";
在下面的**中你要看以上面的定義, 其實就是定義要識別的關鍵字.
而我們處理請求一般都是通過 request.querystring / request.form 這兩種, 我們可以專門寫乙個類去處理這些請求, 但如果在每乙個處理環節都載入這個類去做處理, 那太麻煩了.
如果寫乙個isapi當然也能完成這個功能的實現, 但在.net 中 httpmodule幫我們實現了類似於isapi filter的功能, 所以改為通過 httpmodule 去處理這些事情是最好不過的啦.
我們現在要用到的只是裡面的beginrequest這個事件, 所以只需要註冊beginrequest這個事件就可以了.
記得在前面載入相應名字空間哦.
using system;
using system.web;
忘了還得加個自定名字空間 namespace theme.script
完整的類如下:
///分析使用者請求是否正常
70///
71///
傳入使用者提交資料
72///
返回是否含有sql注入式攻擊**
7**rivate
bool
processsqlstr(
string
str)
7488}89
}90}91
catch
9295
return
returnvalue;96}
97#endregion98}
99100}
101102
編寫完處理後,我們把它生成類庫請在bin的目錄下
csc.exe
/t:library sqlstrany.cs
/r:c:/windows/microsoft.net/framework/v1.
1.4322
/microsoft.visualbasic.dll
編譯完後你會發現已經生成了乙個 sqlstrany.dll 檔案,這個就是我們需要的.
最後在 web.config 中註冊它就可以用了.
最後別忘了在 web.config 中加入錯誤處理的導向頁面哦.
<
add key="
customerrorpage
"value="
../error.html
"/>
至此,所有步驟就完成了, 打你的專案執行它, 在url後加上 select / and ...試試
通過HttpModule實現IP位址遮蔽功能
本文將介紹通過實現ihttpmodule介面,進行判斷和遮蔽ip位址的方法。httomodule的基礎知識可以參閱這裡 閱讀前請先參閱 細說asp.net的ip位址遮蔽功能設計 首先,新建乙個類,名為ipfilter,繼承自ihttpmodule介面 實現ihttpmodule介面,並為contex...
HttpModule實現使用者身份驗證
本文資源全部來自於園子裡各牛 之前看jimmyzhang的asp.net執行原理,開篇既說要明白驗證就要先看asp.net執行原理,不然用控制項就是 微軟的使用者 了 現在看到這總算反應過來,原來驗證是在httpmodule裡進行的 目前觀點 首先來看一下httpmodule的生命週期 為了證明這個...
通過SharedPreference實現共享資料
如果程式b想要訪問程式a的sharedpreference可以通過下面的語句來實現 try catch namenotfoundexception e sharedpreferences sp acontext.getsharedpreferences preferences name,contex...