查找存在漏洞的 NuGet 软件包和 API
ReSharper 会检查项目的 NuGet 依赖项是否存在已知漏洞。 它会高亮显示存在漏洞的软件包引用和已知存在漏洞的方法用法。 为确定漏洞,ReSharper 会使用 Mend.io 上的安全公告列表,其中每条公告都适用于特定软件包及该软件包的特定版本。
以下 代码检查会报告两类问题:
检查 | 高亮显示的内容 | 位置 |
|---|---|---|
存在漏洞的 API 用法 ( | 对被识别为存在漏洞的方法的引用 | C# 代码,通常位于 .cs 文件中 |
NuGet 软件包存在漏洞 ( | 具有已知漏洞的软件包引用,包括传递依赖项中的漏洞 | MSBuild 文件,例如 .csproj 文件 |
传递依赖项是另一个软件包所需的软件包。
软件包检查和 API 检查会提供不同的信息。 即使代码中没有高亮显示的 API 引用,软件包也可能存在已知漏洞。
在 C# 代码中查找存在漏洞的 API
存在漏洞的 API 用法检查会高亮显示 Mend.io 识别为存在漏洞的方法引用。 默认情况下,它使用 警告严重性级别。
查看存在漏洞的 API 用法
在编辑器中打开 C# 文件。
将鼠标悬停在高亮显示的方法引用上。 工具提示会显示漏洞标识符、CVSS 评分和标题。
要查看可用操作,请将文本光标置于高亮显示的引用处,然后按 Alt+Enter。 操作可能包括以下内容:
显示 [vulnerability] 的安全公告 会在浏览器中打开安全公告。
如果软件包管理可用, 尝试将 [软件包] 更新到最新版本 会更新受影响的 NuGet 软件包。
指向漏洞数据提供方的链接。
更新操作会选择软件包的最新版本。 阅读安全公告以检查该版本是否解决了漏洞。
查找存在漏洞的软件包引用
NuGet 软件包存在漏洞检查会检查 MSBuild 文件中的 <PackageReference> 声明。 它会报告已声明软件包及其传递依赖项中的漏洞。 如果 ReSharper 可以解析已安装的版本,它还支持版本来自集中软件包管理的引用。
查看存在漏洞的软件包引用
打开项目文件,例如 .csproj 文件。
将鼠标悬停在高亮显示的软件包引用上。 工具提示会显示受影响的软件包。
要阅读安全公告或更新软件包,请将文本光标置于高亮显示的引用处,然后按 Alt+Enter。
对于传递漏洞,更新操作的目标是引入存在漏洞依赖项的已声明软件包。
配置漏洞检查
可以更改 严重性级别 ,针对 存在漏洞的 API 用法 和 NuGet 软件包存在漏洞 检查,或 禁用它们 ,具体可在 页面(位于 ReSharper 选项 Alt+R, O )中进行。特殊字符。 аднойчы. 使用此页面上的搜索字段按名称查找检查。
还可以在 .editorconfig 文件中配置检查。 例如,以下行会将 存在漏洞的 API 用法检查的严重性更改为 错误 ,并禁用 NuGet 软件包存在漏洞检查:
可用值为 error、 warning、 suggestion、 hint 和 none。