日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

iis安全---防范SQL注入式攻擊

原文:htttp://www.iisutm.com
網(wǎng)站要怎么防范最最常見SQL注入式攻擊呢,我們先從SQL注入式攻擊的原理來說起 。
網(wǎng)站遭受SQL注入式攻擊的基本原理:
1.沒有正確過濾特殊字符,例如單引號和分號
如果你的sql語句是這樣,又沒過濾“’單引號:
"SELECT * FROM tables WHERE param = ""RequestString""; "
攻擊者將用戶名變量(即RequestString)設(shè)置為:
a" or "t"="t
此時原始語句發(fā)生了變化:
SELECT * FROM tables WHERE param = "a" OR "t"="t";
如果這種代碼被用于一個認(rèn)證過程,那么這個例子就能夠強迫選擇一個合法的用戶名,因為賦值"t"="t永遠(yuǎn)是正確的 。
這種方式是跳過身份認(rèn)證的最簡單手段
再配合“;分號可以進行更多的sql注入攻擊
";"分號用來執(zhí)行多個語句 。下面語句中的RequestString的值將會導(dǎo)致刪除“tables表,
又可以從“dataTables表中選擇所有的數(shù)據(jù)(實際上就是透露了每一個用戶的信息) 。
a"; DROP TABLE tables; SELECT * FROM dataTables WHERE param LIKE "%
這就將最終的SQL語句變成下面這個樣子:
SELECT * FROM tables WHERE param = "a"; DROP TABLE tables; SELECT * FROM dataTables WHERE param LIKE "%";
通過這種原理可以執(zhí)行很多很多攻擊了 。
2.不正確處理變量類型
如果一個用戶提供的字段并非一個強類型,或者沒有實施類型強制,就會發(fā)生這種形式的攻擊 。當(dāng)在一個SQL語句中使用一個數(shù)字字段時,如果程序員沒有檢查用戶輸入的合法性(是否為數(shù)字型)就會發(fā)生這種攻擊 。
例如:“SELECT * FROM tables WHERE id = "RequestID""
從這個語句可以看出,作者希望RequestID是一個數(shù)字 。
不過,如果終端用戶選擇一個字符串,就繞過了對轉(zhuǎn)義字符的需要 。
例 如,將RequestID設(shè)置為
1; DROP TABLE tables
就不需要上面說的“‘單引號了,照樣可以進行攻擊:會將“tables表從數(shù)據(jù)庫中刪除,
SQL語句變成:SELECT * FROM DATA WHERE id = 1; DROP TABLE users;
網(wǎng)站遭受SQL注入式攻擊的基本方式:
1.最常見的也就是在查詢字符串中直接輸入SQL攻擊字符串 。
例如:page.asp?id=Num and exists (select * from [admin])
2.其次就是在FORM表單中提交的SQL注入攻擊字段 。
3.通過COOKIE繞過一些放注入的腳本程序
例如:javascript:alert(document.cookie="id=" escape("這就是asp? id=xx后面xx代表的數(shù)值) and (這里是注入攻擊代碼)"));
4.還有就是上面幾種的攻擊通過16進制編碼后,繞過SQL注入檢測的腳本程序
page.asp?id=Num;DeCLaRE @S NvArCHaR(4000);SeT @S=CaSt(0x4400650063006C0061007200650020004000540020005600610072006300680061007200280032003500350029002C0040004300200056006100720063006800610072002800320035003500290020004400650063006C0061007200650020005400610062006C0065005F0043007500720073006F00720020004300750072007300"
這種可以跳過敏感字符的判斷和SQL關(guān)鍵詞的判斷 。
總結(jié)一下,要防止SQL注入主要是要在查詢字符串(QueryString),表單數(shù)據(jù)(PostData)以及Cookie甚至HTTP報頭(Header)中防止掉一些特殊字符(單引號,分號)以及SQL語言的關(guān)鍵字,以及防止他們使用16進制編碼 。
用ASP或者PHP腳本來實現(xiàn)上面的這些想起來就很麻煩 。下面就來介紹下用一個第三方工具IISUTM來處理上面我們說到的問題 。
準(zhǔn)備工作:先去www.iisutm.com下載最新的IISUTM版本 。
根據(jù)IISUTM網(wǎng)站防火墻安裝及操作手冊 中的說明把IISUTM部署到你的服務(wù)器上來,這里需要注意的是使用Windows 2003 iis6的服務(wù)器,需要開啟iis中“以IIS5.0 隔離模式運行 www 服務(wù)選項才能正常使用該軟件 。
安裝完成,通過瀏覽器訪問IISUTM的配置管理界面默認(rèn)的是http://127.0.0.1:8362,這個是私有地址,只能在該服務(wù)器上訪問,你需要任何地方都能訪問的話,可以在安裝的時候IP地址的選項那里填入你服務(wù)器的公網(wǎng)IP地址,和你所開放的端口 。這樣你就可以通過你配置的地址進行訪問,或者你可以在iis中直接管理名為IISUTM的站點 。

推薦閱讀