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