asp.net网站安全常见问题与防范
1:SQL 注入
2:XSS
3:CSRF
4:文件上傳
1:SQL 注入
引起原因:
其實(shí)現(xiàn)在很多網(wǎng)站中都存在這種問(wèn)題。就是程序中直接進(jìn)行SQL語(yǔ)句拼接。可能有些讀者不太明白。下面通過(guò)一個(gè)登錄時(shí)對(duì)用戶驗(yàn)證來(lái)說(shuō)明:
code:
驗(yàn)證時(shí)的sql語(yǔ)句: select * from where user='"+txtUsername.Text+"' and pwd='"+txtPwd.Text+"'
這是一段從數(shù)據(jù)庫(kù)中查詢用戶,對(duì)用戶名,密碼驗(yàn)證。
看上去好象沒(méi)有什么問(wèn)題,但是實(shí)際這里面淺藏著問(wèn)題,用戶名:admin 密碼: admin,
select * from where user='admin' and pwd='admin'
如果用戶和密碼正確就可通驗(yàn)證。如果我用戶名:asdf' or 1=1 -- 密碼:隨意輸入.
我們?cè)賮?lái)看語(yǔ)句:
select * from where user=‘a(chǎn)sdf' or 1=1 -- and pwd=''
執(zhí)行后看到什么?是不是所有記錄,如果程序只是簡(jiǎn)單判斷返回的條數(shù),這種方法就可以通驗(yàn)證。
如果執(zhí)行語(yǔ)句是SA用戶,再通過(guò)xp_cmdshell添加系統(tǒng)管理員,那么這個(gè)服務(wù)器就被拿下了。
解決方法:
(1):這個(gè)問(wèn)題主要是由于傳入特殊字符引起的我們可以在對(duì)輸入的用戶名密碼進(jìn)入過(guò)濾特殊字符處理。
(2):使用存儲(chǔ)過(guò)程通過(guò)傳入?yún)?shù)的方法可解決此類問(wèn)題(注意:在存儲(chǔ)過(guò)程中不可使用拼接實(shí)現(xiàn),不然和沒(méi)用存儲(chǔ)過(guò)和是一樣的)。
2:XSS(跨站腳本攻擊)
引起原因:
這個(gè)也有時(shí)被人們稱作HTML注入,和sql注入原理相似,也是沒(méi)有特殊字符進(jìn)行處理。是用戶可以提交HTML標(biāo)簽對(duì)網(wǎng)站進(jìn)行重新的構(gòu)造。其實(shí)在默認(rèn)的情況下在asp.net網(wǎng)頁(yè)中是開(kāi)啟validateRequest屬性的,所有HTML標(biāo)簽后會(huì).NET都會(huì)驗(yàn)證:
但這樣直接把異常拋給用戶,多少用戶體驗(yàn)就不好。
解決方法:
(1):通過(guò)在 Page 指令或 配置節(jié)中設(shè)置 validateRequest=false 禁用請(qǐng)求驗(yàn)證,然后我們對(duì)用戶提交的數(shù)據(jù)進(jìn)行HtmlEncode,編碼后的就不會(huì)出現(xiàn)這種問(wèn)題了(ASP.NET 中編碼方法:Server.HtmlEncode(string))。
(2):第二種是過(guò)濾特殊字符,這種方法就不太提倡了,如果用戶想輸入小于號(hào)(<)也會(huì)被過(guò)濾掉.
3:CSRF(跨站點(diǎn)請(qǐng)求偽造)
引起原因:個(gè)人認(rèn)為csrf在Ajax盛行的今天來(lái)說(shuō),倒是方便了,因?yàn)樗梢栽谀悴恢赖那闆r用你的通過(guò)驗(yàn)證用戶進(jìn)行操作,所以也被稱為瀏覽器劫持。如果你已通過(guò)某個(gè)網(wǎng)站的驗(yàn)證那么你將以你的角色對(duì)網(wǎng)站進(jìn)行操作,比如你是管理員可以添加其它的用戶到管理組,但是如果有人構(gòu)造了添加管理員的鏈接被管理員點(diǎn)后也會(huì)執(zhí)行相應(yīng)操作.具體原因可參考lake2寫的文章http://blog.csdn.net/lake2/archive/2008/04/02/2245754.aspx
解決方法:
在lake2的文章中也提出了。就是修改信息時(shí)添加驗(yàn)證碼。或添加Session令牌(ASP.NET中已經(jīng)提供一個(gè)自動(dòng)防范的方法,就是用頁(yè)面屬性ViewStateUserKey.在Page_Init方法中設(shè)置其值。this.ViewStateUserKey=Session.SessionID)。
4:文件上傳
引起原因:
如果你的網(wǎng)站使用的是在線編輯器,如FCKEditor,eWeb等等,如果沒(méi)有處理好文件上傳,那么上線后網(wǎng)站會(huì)很快的被篡改。
職業(yè)規(guī)劃網(wǎng)? ? 網(wǎng)購(gòu)從這里開(kāi)始 ( 物美價(jià)廉還等什么?!!! ) ? ?
2012夏裝新款薄紗拼接性感包臀顯瘦party宴會(huì)禮服連衣裙子女配胸
2012夏裝新款韓版時(shí)尚雪紡皇冠ZUMA正品女裝小衫短上衣
2條包郵 春夏 韓版 糖果色運(yùn)動(dòng)休閑松緊腰大碼短褲 沙灘褲 熱褲
簡(jiǎn)約字母韓版百搭露肩小性感隨意范兒中長(zhǎng)款長(zhǎng)袖T恤
春裝 新款 女裝豹紋絲絨百搭裙包臀裙打底裙迷你闊擺裙短裙半
秋水伊人2012新款夏裝連衣裙122102023專柜正品代購(gòu)女裙子夏季新
秋水伊人2012新款夏裝連衣裙122102017專柜正品代購(gòu)女裙子送禮品
2012夏季新款大碼女裝褲夏女七九分彈力韓版潮顯瘦打底褲包郵薄款
春裝2012新款 蘊(yùn)熙韓版女裝 修身款打底衫 女式圓領(lǐng)長(zhǎng)袖T恤 包郵
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的asp.net网站安全常见问题与防范的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android应用自动更新功能实现使用A
- 下一篇: 某公司的网络管理员职责