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

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

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

詳細說明 http://imroot.diandian.com/post/2010-11-21/40031442584
 
Example :            在登陸狀態下進入了攻擊網站向安全站點發送了請求。
 
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 三大領域。 需要區別對待進行輸入輸出編碼。
 
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 分別對應的方法 HtmlEncode(string),JavaScriptEncodes(string),UrlEncode(string).
 
 
 
三.直接對象引用
 
Example:  …/Bidding/RFPRFI/Detail?editId=xxx。可以直接看到其他公司的信息;
 
bidding-> evaluation . 應標方可直接在地址欄中輸入:…/Bidding/Evaluation/SaveScope?proposalId=1603&priceScope=100&proScore=100&chs=100。 來隨意修改評分。
 
還有MDI 系統中的下拉框是easyui綁定一個隱藏域兩部分。 甚至可以使用瀏覽器的調試工具, 直接修改hidden 域的值后提交。
 
Solution: 加入驗證。 例如 : select * from rfprfi where edited = xxx and owner = currentuser.userid. 驗證該用戶對此信息是否有讀寫的權限。(具體要根據業務邏輯一一處理,這個工作量十分大。建議后期完成)。
 
 
四.DOS
 
Solution:可使用HTTPModule阻止訪問率太高的ip。 example code 見我的博客:
 
http://www.2cto.com/kf/201307/226466.html
 
這種方式是針對固定IP發起的DOS攻擊來的。 如果攻擊方使用了代理IP,則需要考慮用其他方式。 關于這一點后續會作補充。 
 
 
五.傳輸層未做保護
 
Example: 登陸系統的post請求中將account , loginname , password 信息都是明文傳輸。
 
Solution: 使用HTTPS。(需要付費)。
 
 
六.暴力破解密碼
 
目前的登陸和修改密碼,沒有錯誤次數的限制。
 
Solution: 是否可以加入新的邏輯:單位時間內輸入錯誤次數大于一個數值時,改賬號會被凍結。可以由改company的admin 解凍 或者發送申請到 sunnet后由sunnet公司解凍。
 
 
七.數據加密
 
目前登陸密碼是用DES加密的。 一般登陸用的密碼都是用單向的加密,比如MD5。而例如Invoice number ,pipeline 的位置信息,都用DES加密后存入數據庫
 
 
 
八.身份驗證
 
問題:目前是使用了session認證。如果被會話劫持或者會話冒充。則失去了認證機制。
 
Solution:使用多重保險。
1.使用form認證:目前配置文件中已加入form認證的節點,<forms loginUrl="~/Account/Login" timeout="2880"/>
但是code中并沒有使用。需要再登陸成功后加入 System.Web.Security.FormsAuthentication.SetAuthCookie登出后加入 System.Web.Security.FormsAuthentication.SignOut,在basecontrol 中再加上一層 User.Identity.IsAuthenticated的判斷即可。
 
2.使用membership 與FormsAuthentication 一起創建身份驗證。
 
3.是否考慮使用WCF 來完善驗證機制。
 
4.Passport 驗證。(由微軟提供,需要收費。。)
 
 
 
九.錯誤處理
 
問題:為了安全起見,應該假設在某些時候會發生一個沒有捕獲的異常。
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特性來實現一個或多個異常處理器。特別是比如invoice paid之類的重要操作,需要更細粒度的錯誤處理
 
 
 
十.CAS 權限
 
目前沒有控制代碼訪問安全。
 
Solution:
 
1.
 
使用具體的權限類實現標準的方法:
 
比如需要嚴格控制文件的讀權限。
 
1
2
3
4
5
6
7
8
9
10
FileIOPermission iopermission =new FileIOPermission(FileIOPermissionAccess.Read,"xx.txt");
try
{
iopermission.Demand();
//實現方法
}
catch(SecurityException ex)
{
//處理異常
}

 

或者使用相關聯的特性:
[FileIOPermission(SecurityAction.Demand,Read =”xx.txt”)]
2.那些需要Full Trust 的代碼放到 GAC單獨的程序集中存儲。因為GAC中的代碼全部在Full Trust 下運行的。添加方式可以通過命令提示符 –sn 或者通過工具完成。添加完成后就可以在主程序中添加引用,并且需要添加 AllowPartiallyTrustedCallers 特性以得到訪問權限
主站蜘蛛池模板: 久久影院午夜 | 久久国产免费 | 一级毛片真人免费播放视频 | 久久不雅视频 | 黄色片网站在线免费观看 | 超级av在线 | 成人性生活视频在线观看 | 99精品视频久久精品视频 | 国产精品久久久久久久久粉嫩 | 欧美性色生活片免费播放 | 国产人成免费爽爽爽视频 | 91精品国产综合久久婷婷香 | 午夜视频色 | 综合在线一区 | 午夜视频国产 | 一级黄色淫片 | 欧美福利视频一区二区三区 | 免费a级黄色片 | 免费看性xxx高清视频自由 | 久久久久国产精品久久久久 | 久久久久久久久久久综合 | 中文成人在线 | 曰批全过程120分钟免费69 | 久久久资源网 | 免费观看视频在线 | 伊人午夜视频 | 狠狠干五月天 | 国产精品久久久久久婷婷天堂 | 国产乱色精品成人免费视频 | 亚洲成人在线视频网站 | 免费一区区三区四区 | 欧美一级黄色录像片 | 嫩呦国产一区二区三区av | 成人短视频在线播放 | 久久毛片 | 欧美在线中文字幕 | 播色网 | 久久69精品久久久久久国产越南 | 成人在线免费看 | 久久久tv| 午夜av男人的天堂 |