免费男女视频_国产系列 视频二区_羞羞视频免费入口网站_久国久产久精永久网页_国产免费观看av_一区二区三区日韩在线观看

asp.net MVC 常见安全问题及解决方案

一.CSRF (Cross-site request forgery跨站請求偽造,也被稱為“one click attack”或者session riding,通??s寫為CSRF或者XSRF,是一種對網(wǎng)站的惡意利用)

詳細說明 http://imroot.diandian.com/post/2010-11-21/40031442584
 
Example :            在登陸狀態(tài)下進入了攻擊網(wǎng)站向安全站點發(fā)送了請求。
 
Solution: 在view 中使用 @Html.AntiForgeryToken(), 在Action 上加上 [ValidateAntiForgeryToken]   特性。 再次點到跨域請求的時候就會顯示 :
 
“The required anti-forgery cookie "__RequestVerificationToken" is not present.”
 
二.XSS (XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫為XSS。)
 
Solution:  分為 Html ,js ,url 三大領(lǐng)域。 需要區(qū)別對待進行輸入輸出編碼。
 
Html 使用 Server.HtmlEncode , Server.HtmlDecode;
 
url使用 Server.urlEncode, Server.urlDecode;
 
js 使用: escape, unescape;
 
 
 
或者使用 Anti-XSS 庫。 下載地址 :
 
http://www.microsoft.com/en-us/download/details.aspx?id=28589
 
引入后,html ,js ,url 分別對應(yīng)的方法 HtmlEncode(string),JavaScriptEncodes(string),UrlEncode(string).
 
 
 
三.直接對象引用
 
Example:  …/Bidding/RFPRFI/Detail?editId=xxx??梢灾苯涌吹狡渌镜男畔?;
 
bidding-> evaluation . 應(yīng)標(biāo)方可直接在地址欄中輸入:…/Bidding/Evaluation/SaveScope?proposalId=1603&priceScope=100&proScore=100&chs=100。 來隨意修改評分。
 
還有MDI 系統(tǒng)中的下拉框是easyui綁定一個隱藏域兩部分。 甚至可以使用瀏覽器的調(diào)試工具, 直接修改hidden 域的值后提交。
 
Solution: 加入驗證。 例如 : select * from rfprfi where edited = xxx and owner = currentuser.userid. 驗證該用戶對此信息是否有讀寫的權(quán)限。(具體要根據(jù)業(yè)務(wù)邏輯一一處理,這個工作量十分大。建議后期完成)。
 
 
四.DOS
 
Solution:可使用HTTPModule阻止訪問率太高的ip。 example code 見我的博客:
 
http://www.2cto.com/kf/201307/226466.html
 
這種方式是針對固定IP發(fā)起的DOS攻擊來的。 如果攻擊方使用了代理IP,則需要考慮用其他方式。 關(guān)于這一點后續(xù)會作補充。 
 
 
五.傳輸層未做保護
 
Example: 登陸系統(tǒng)的post請求中將account , loginname , password 信息都是明文傳輸。
 
Solution: 使用HTTPS。(需要付費)。
 
 
六.暴力破解密碼
 
目前的登陸和修改密碼,沒有錯誤次數(shù)的限制。
 
Solution: 是否可以加入新的邏輯:單位時間內(nèi)輸入錯誤次數(shù)大于一個數(shù)值時,改賬號會被凍結(jié)。可以由改company的admin 解凍 或者發(fā)送申請到 sunnet后由sunnet公司解凍。
 
 
七.?dāng)?shù)據(jù)加密
 
目前登陸密碼是用DES加密的。 一般登陸用的密碼都是用單向的加密,比如MD5。而例如Invoice number ,pipeline 的位置信息,都用DES加密后存入數(shù)據(jù)庫。
 
 
 
八.身份驗證
 
問題:目前是使用了session認證。如果被會話劫持或者會話冒充。則失去了認證機制。
 
Solution:使用多重保險。
1.使用form認證:目前配置文件中已加入form認證的節(jié)點,<forms loginUrl="~/Account/Login" timeout="2880"/>
但是code中并沒有使用。需要再登陸成功后加入 System.Web.Security.FormsAuthentication.SetAuthCookie登出后加入 System.Web.Security.FormsAuthentication.SignOut,在basecontrol 中再加上一層 User.Identity.IsAuthenticated的判斷即可。
 
2.使用membership 與FormsAuthentication 一起創(chuàng)建身份驗證。
 
3.是否考慮使用WCF 來完善驗證機制。
 
4.Passport 驗證。(由微軟提供,需要收費。。)
 
 
 
九.錯誤處理
 
問題:為了安全起見,應(yīng)該假設(shè)在某些時候會發(fā)生一個沒有捕獲的異常。
Solution: 1.重寫 Controller 的 OnException方法: 
 
1
2
3
4
5
protected override void OnException(ExceptionContext filterContext)
 {
    filterContext.ExceptionHandled =true;
    this.View("").ExecuteResult(filterContext.Controller.ControllerContext);
 }

 

2. 或者通過 HandleError特性來實現(xiàn)一個或多個異常處理器。特別是比如invoice paid之類的重要操作,需要更細粒度的錯誤處理
 
 
 
十.CAS 權(quán)限
 
目前沒有控制代碼訪問安全。
 
Solution:
 
1.
 
使用具體的權(quán)限類實現(xiàn)標(biāo)準(zhǔn)的方法:
 
比如需要嚴格控制文件的讀權(quán)限。
 
1
2
3
4
5
6
7
8
9
10
FileIOPermission iopermission =new FileIOPermission(FileIOPermissionAccess.Read,"xx.txt");
try
{
iopermission.Demand();
//實現(xiàn)方法
}
catch(SecurityException ex)
{
//處理異常
}

 

或者使用相關(guān)聯(lián)的特性:
[FileIOPermission(SecurityAction.Demand,Read =”xx.txt”)]
2.那些需要Full Trust 的代碼放到 GAC單獨的程序集中存儲。因為GAC中的代碼全部在Full Trust 下運行的。添加方式可以通過命令提示符 –sn 或者通過工具完成。添加完成后就可以在主程序中添加引用,并且需要添加 AllowPartiallyTrustedCallers 特性以得到訪問權(quán)限
主站蜘蛛池模板: 特级西西444www大精品视频免费看 | 久久久久久久久久久久久九 | 国产69精品久久久久99尤 | 好吊色欧美一区二区三区四区 | 毛片大全在线观看 | 久草视频国产在线 | 免费在线观看成年人视频 | 国产毛片网 | 久草在线新视觉 | 国产亚洲精品久久久久5区 综合激情网 | 日韩欧美高清一区 | 国内精品久久久久久久星辰影视 | 国产成人在线观看免费网站 | 亚洲天堂中文字幕在线观看 | www嫩草 | 精品亚洲免费 | 香蕉久久久精品 | 欧美a级毛片 | 亚洲欧美不卡视频 | 毛片a级毛片免费播放100 | 免费国产视频大全入口 | 日日草夜夜 | 国产一区视频在线观看免费 | 色视频一区二区 | 欧美在线观看视频一区二区 | 欧美一级黄色影院 | 国产高潮好爽好大受不了了 | 日本黄色一级电影 | 黄色特级片黄色特级片 | 国产精品成人免费一区久久羞羞 | 91成人在线免费视频 | 亚洲视频成人在线 | 国产精品久久久久久久久久三级 | 久久91精品国产91久久yfo | 国产精品久久久久久久久久10秀 | 日韩欧美电影一区二区三区 | 日本黄色一级视频 | 美国一级免费视频 | 91精品久久久久久久久网影视 | 国产毛片aaa一区二区三区视频 | 成年免费看|