- .NET安全攻防指南(上冊)
- 李寅 莫書棋
- 439字
- 2025-06-11 10:22:16
1.2 代碼分析器
代碼分析器FxCopAnalyzers全稱為Microsoft.CodeAnalysis.FxCopAnalyzers,是一組.NET編譯分析工具,包含Microsoft.CodeQuality.Analyzers、Microsoft.NetCore.Analyzers、Microsoft.NetFramework.Analyzers三個子模塊,三者都是基于.NET編譯器構建的。FxCopAnalyzers對不同的.NET平臺可以在編譯時進行.NET代碼質量檢查,提供實用的建議和警告,以改善代碼質量、安全和性能。
在.NET 5.0之前的版本中可以通過NuGet包安裝FxCopAnalyzers,打開包所在的地址https://www.nuget.org/packages/Microsoft.CodeAnalysis.FxCopAnalyzers,如圖1-43所示。

圖1-43 NuGet管理器安裝分析器
下面對名為WebForm的.NET Web項目安裝FxCopAnalyzers,直接在Visual Studio包管理器處安裝,安裝完成后分析器列表如圖1-44所示。

圖1-44 當前項目已安裝分析器
FxCopAnalyzers代碼分析器可根據審查出的違規代碼質量或者安全性等潛在的影響,劃分出如表1-3所示的質量等級。
表1-3 代碼分析器質量等級

(續)

比如,下面是可能存在XXE漏洞風險的.NET代碼,經過代碼分析器檢測,觸發了編號為“CA3075”的規則。

代碼分析器使用綠色波浪線進行提示,并在錯誤列表中注明“LoadXml”方法的不安全重載,如圖1-45所示。

圖1-45 分析器提示當前方法不安全
打開規則鏈接/zh-cn/dotnet/fundamentals/code-analysis/quality-rules/ca3075,顯示這條安全規則的詳細說明,如圖1-46所示。
不過從.NET 5.0和Visual Studio 2019 16.8開始,代碼分析器默認已經包含在.NET SDK中,并且微軟官方推薦使用Microsoft.CodeAnalysis.NetAnalyzers來替代FxCopAnalyzers。