天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

使用VS2010代碼分析功能增強ASP.NET應用程序安全

  任何從事ASP.NET開發的人都不得不承認,在其職業生涯中曾經遇到過應用程序安全問題,開發人員常常被迫盡快交付代碼,平臺的復雜性和各種配置選項讓應用程序的安全總達不到預期,此外,調試和生產環境的配置要求可能會不同,因此,一個常見的問題是將調試配置引入到生產環境,從而造成各種問題。

  經過多年的發展,ASP.NET平臺已經成熟,MSDN和社區博客也產生了大量優秀的文檔,但確定使用哪些功能或配置往往是件麻煩事,即使開發人員有著良好的安全意識和安全技能,錯誤總是在所難免,程序中的漏洞仍然很多。同行代碼審查是一個有用的過程,也是早期捕捉問題的很好方法,但不是每個人都有時間或預算做同行評審。

  自Visual Studio 2005引入代碼分析功能以來,開發人員可以自動分析他們的代碼,查看是否遵守了設計、可維護性、性能和安全性的最佳實踐,雖然代碼分析是個好東西,但它一直未為ASP.NET提供最佳安全實踐指南,直到現在。本文將向你介紹新的ASP.NET代碼分析規則,包括Visual Studio代碼分析功能和獨立的FxCop提高ASP.NET應用程序的安全性。

  概述
  你可以從go.microsoft.com/-?linkid=9750555下載Visual Studio 2010 ASP.NET安全代碼分析規則包和FxCop v10.0,安裝程序包含下面三個新的規則包:
  ASP.NET.Security:它重點在System.Web.Ui.Page屬性初始化相關的最佳安全實踐。
  ASP.NET.MVC.Security:它重點在如何使用ASP.NET MVC相關的安全最佳實踐。
  ASP.NET.Security.Configuration:它重點在web.config文件下的配置元素相關的安全最佳實踐。

  規則包安裝好后,點擊“生成”菜單下“網站”按鈕上的“運行代碼分析”,開始自動分析Web應用程序的安全,這個過程會分析應用程序的每個Page類和web.config文件,與ASP.NET應用程序最佳安全實踐進行對比,給出綜合性的分析結果。例如,一個常見的Web應用程序安全漏洞是跨站請求偽造,它允許攻擊者以其他用戶的身份執行命令,修復這個漏洞的方法是使用Page.ViewStateUserKey屬性,你也可以使用ASP.NET MVC中的AntiForgeryToken,這兩種技術都可以預防對應用程序的惡意重放攻擊,代碼分析將有助于確定使用正確的修復方法。

  我從許多開發人員那里得到的反饋是,首次運行代碼分析功能時將會得到許多警告,如圖1所示,不過這些都是很好解決的問題。

 
圖 1 在錯誤列表警告標簽中列出的警告信息

  為了消除這些警告,每個規則包含一個清晰的指令指出必須修復的地方,以及如何修復,如果需要更多信息還應該列出一些參考內容,如圖2所示。

 
圖 2 警告列表中的詳細信息

  代碼分析也可以配置為每次生成操作時運行,點擊“網站”*“配置代碼分析”,然后選中“啟用生成時代碼分析(定義CODE_ANALYSIS常量)”選項,如圖3所示。

 
圖 3 開啟生成期間的代碼分析功能

  使用FxCop進行代碼分析

  代碼分析功能僅在Visual Studio Premium和Ultimate版中提供,此外,你還可以使用獨立的FxCop工具執行ASP.NET代碼分析,FxCop是Windows SDK的一部分,最新的Windows SDK 7.1可從這里下載,使用標準的FxCop工具執行分析時需要多做一點工作。

  正常情況下,當你編譯Web項目時,頁面標記 - 代碼隱藏文件中未包括的頁面代碼 - 不會被編譯,它們會原封不動地停留在應用程序的根目錄下,當第一個用戶請求頁面時,標記被編譯進獨立的程序集,這樣更新網站時就不用重新編譯所有代碼。

  因為不是所有代碼全部自動編譯,在分析期間有的代碼是不可見的,因此一些重要的安全問題可能被錯過,為了確保所有的代碼在分析過程中可見,你需要強制預編譯所有頁面,可以使用“發布網站”工具實現預編譯,點擊“生成”*“發布網站”即可,這個工具允許你配置如何發布網站,以及開啟預編譯功能,取消“允許預編譯網站以更新”選項,點擊“確定”,如圖4所示,這樣就會完整編譯整個網站進行分析。


圖 4 使用預編譯發布網站

  ASP.NET分析只需要FxCop命令行版本的功能,打開命令提示符窗口,切換到FxCop安裝目錄,如果你是32位Windows,則可能是:C:/Program Files (x86)/Microsoft FxCop 10.0,如果是64位Windows,則可能是:C:/Program Files/Microsoft FxCop 10.0。從FxCop安裝目錄運行Fxcop-cmd.exe開始代碼分析,對于一個ASP.NET網站,使用下面這樣的命令:

圖5

  /file參數指出要分析的程序集,在這個例子中,我預編譯的網站程序集在H:/MSDN/PrecompiledWeb/MSDNSampleSite/bin下。
  /rule參數指定分析期間使用的規則,對于這個例子,我只使用了三個ASP.NET安全規則:ASPNETConfigurationSecurityRules.dll,ASPNETMvcSecurity-Rules.dll和ASPNETSecurityRules.dll。
  /ASPNET參數表示開啟ASP.NET分析,/console參數指出分析結果輸出到命令行窗口。

  結語

  讓ASP.NET網站更安全是一項艱巨的任務,ASP.NET安全代碼分析規則算是幫了一個大忙,至少你幫你確定一些重大的威脅,正如你從這篇文章看到的,其分析過程很簡單,可以配置為每次生成時運行,讓你可以及早發現問題。

  我建議將規則部署到每個開發人員的機器上,也將它們作為TFS(Team Foundation Sever)或其它代碼倉庫檢入(check in)策略的一部分,以便每個開發人員都可以在生成時執行代碼分析和策略。你也可以定制自己的代碼分析規則,如果你想就此做進一步學習和研究,建議去由Duke Kamstra維護的代碼分析團隊博客逛逛,此外,在Tatham Oddie的博客中也有很多優秀的文章。

NET技術使用VS2010代碼分析功能增強ASP.NET應用程序安全,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 妺妺窝人体色WWW偷窥女厕 | HEYZO精品无码一区二区三区 | 97成人精品视频在线播放 | 精油按摩日本 | 青柠在线观看视频在线高清完整 | 日本日本熟妇中文在线视频 | 亚洲日韩中文字幕区 | 97se se| 亚洲国产综合另类视频 | 国产成人无码视频一区二区三区 | 旧里番ovaの催○セイ活指导 | 国产亚洲精品久久久久久一区二区 | 日本午夜视频在线 | 午夜伦4480yy妇女久久 | 久久青青草原 | a免费视频 | 日本边添边摸边做边爱边 | 性一交一无一伦一精一品 | 永久免费在线视频 | 特级毛片全部免费播放免下载 | 亚洲中文热码在线视频 | 亚洲AV无码乱码在线观看浪潮 | 日本精品卡一卡2卡3卡四卡三卡 | 天天摸夜添狠狠添高 | 99热久久视频只有精品6国产 | 狠狠操天天操夜夜操 | md2.pud 麻豆传媒官网 | 色偷偷91综合久久噜噜 | 无码一区国产欧美在线资源 | 久久青青草原精品国产软件 | 动漫H片在线播放免费高清 动漫AV纯肉无码AV电影网 | 色狼亚洲色图 | 国产成人精品自拍 | 老阿姨儿子一二三区 | 沈阳熟女露脸对白视频 | 97在线视频网站 | 欧美高清videossexo | 国产呦精品一区二区三区下载 | 国产午夜精品一区理论片飘花 | 国产乱码伦人偷精品视频 | 小柔的性放荡羞辱日记 |