SonarSource/sonar-dotnet

GitHub: SonarSource/sonar-dotnet

面向 C# 和 VB.NET 的 Roslyn 静态代码分析器,帮助开发团队在编码和构建阶段自动发现 Bug、漏洞及代码异味。

Stars: 909 | Forks: 242

# C\# 和 VB.NET 的代码质量与安全 [![构建状态](https://dev.azure.com/sonarsource/DotNetTeam%20Project/_apis/build/status/Sonar.Net?branchName=master)](https://dev.azure.com/sonarsource/DotNetTeam%20Project/_build/latest?definitionId=77&branchName=master) |产品|质量门|覆盖率| |:--:|:--:|:--:| |Analyzer|[![质量门](https://sonarcloud.io/api/project_badges/measure?project=sonaranalyzer-dotnet&metric=alert_status)](https://sonarcloud.io/dashboard?id=sonaranalyzer-dotnet)|[![覆盖率](https://sonarcloud.io/api/project_badges/measure?project=sonaranalyzer-dotnet&metric=coverage)](https://sonarcloud.io/component_measures?id=sonaranalyzer-dotnet&metric=coverage)| |Plugin|[![质量门](https://sonarcloud.io/api/project_badges/measure?project=org.sonarsource.dotnet%3Asonar-dotnet&metric=alert_status)](https://sonarcloud.io/dashboard?id=org.sonarsource.dotnet%3Asonar-dotnet)|[![覆盖率](https://sonarcloud.io/api/project_badges/measure?project=org.sonarsource.dotnet%3Asonar-dotnet&metric=coverage)](https://sonarcloud.io/component_measures?id=org.sonarsource.dotnet%3Asonar-dotnet&metric=coverage)| [SonarQube server](https://www.sonarsource.com/products/sonarqube)、[SonarQube cloud](https://www.sonarsource.com/products/sonarcloud) 和 [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint) 代码质量与安全产品中针对 C# 和 VB.NET 语言的[静态分析](https://en.wikipedia.org/wiki/Static_program_analysis)。这些 Roslyn analyzer 允许您交付具有集成代码质量和安全性的代码,通过帮助您发现和纠正代码库中的 bug、漏洞和代码异味,从而确保代码是安全、可靠且可维护的。 ## 功能 * 470+ 条 C# 规则和 210+ 条 VB.​NET 规则 * 指标(认知复杂度、重复、代码行数等) * 导入来自 Visual Studio Code Coverage、dotCover、OpenCover、Coverlet、Altcover 的[测试覆盖率报告](https://community.sonarsource.com/t/9871)。 * 导入第三方 Roslyn Analyzer 结果 * 支持[自定义规则](https://github.com/SonarSource/sonarqube-roslyn-sdk) ## 实用的公共资源 * [项目主页](https://redirect.sonarsource.com/plugins/csharp.html) * [问题追踪](./docs/issues.md) ### Nuget.org 包 * [SonarAnalyzer.CSharp](https://www.nuget.org/packages/SonarAnalyzer.CSharp/) * [SonarAnalyzer.VisualBasic](https://www.nuget.org/packages/SonarAnalyzer.VisualBasic/) ### 与 SonarQube 集成 * [使用 SonarScanner for .NET 分析项目](https://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html) * [导入代码覆盖率](https://community.sonarsource.com/t/9871) * [SonarQube 与代码覆盖率](https://community.sonarsource.com/t/4725) ## 开始使用 * [构建、测试和调试 .NET analyzer](./docs/contributing-analyzer.md) * [构建、测试和调试 Java 插件](./docs/contributing-plugin.md) * [如何重新生成 NuGet lock 文件](./docs/regenerate-lock-files.md) ## 自定义规则 要请求新规则,请在[我们的社区论坛](https://community.sonarsource.com/c/suggestions/)上联系我们。 如果您有关于某个规则的想法,但不确定是否每个人都需要它,您可以实现自己的 Roslyn analyzer。 - 您可以从[微软的这篇教程](https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix)开始学习如何编写 analyzer。 - 所有基于 Roslyn 的问题都会被 [SonarScanner for .NET](https://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html) 捕获,并作为外部问题推送到 SonarQube。 - 如果您想从 SonarQube 管理您的规则,还可以查看 [SonarQube Roslyn SDK](https://github.com/SonarSource-VisualStudio/sonarqube-roslyn-sdk),将您的 Roslyn analyzer 嵌入到 SonarQube 插件中。 ## 配置规则 ### SonarQube for IDE 最简单的方法是在 SonarQube 中配置一个 Quality Profile。使用 SonarQube for IDE Connected Mode 连接到 SonarQube Server 或 Cloud。 ### 独立 NuGet 来自独立 NuGet 包的规则可以像其他基于 Roslyn 的 analyzer 一样,通过使用 `.globalconfig` 或 `.editorconfig` 文件来启用或禁用。 参见:https://learn.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers?view=vs-2022#set-rule-severity-in-an-editorconfig-file 如果规则已参数化,则可以使用 `SonarLint.xml` 额外文件来更改参数值。 第一步是创建一个名为 `SonarLint.xml` 的新文件,其结构如下: ``` sonar.cs.analyzeGeneratedCode false S107 max 2 ``` 然后,更新项目以包含此额外文件: ``` ``` ## 安全问题 如果您认为自己发现了 Sonar 产品中的安全漏洞,请查阅[此文档](./SECURITY.md)。 ## 许可证 版权所有 SonarSource Sàrl。 根据 [SONAR Source-Available License v1.0](https://www.sonarsource.com/license/ssal/) 获得许可
标签:JS文件枚举, Redis利用, Roslyn, VB.NET, 云安全监控, 代码安全审计, 多人体追踪, 安全专业人员, 静态分析