sas*_*alm 6 c# secure-coding checkmarx asp.net-core
CheckMarx 正在标记一个错误,对我来说这看起来像是误报。我们的应用程序是用 C# 编写的,并使用 ASP.NET Core。
错误是:
Web 应用程序的 Startup 方法在 Startup.cs 的第 22 行创建一个 cookie Startup,并在响应中返回它。但是,应用程序未配置为自动设置具有“httpOnly”属性的 cookie,并且代码未显式将此添加到 cookie。
这是第 22 行:
public class Startup
Run Code Online (Sandbox Code Playgroud)
我们确实正确设置了 cookie 策略:
app.UseCookiePolicy(new CookiePolicyOptions
{
HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.Always
});
Run Code Online (Sandbox Code Playgroud)
但 CheckMarx 仍在标记此警告。而且我不认为我的 Startup 类会创建一个名为 Startup 的 cookie。
我在这里找到了类似的帖子(未答复) - https://github.com/Azure/azure-functions-vs-build-sdk/issues/469。
那么这是误报吗?我如何让 CheckMarx 停止标记它?
小智 5
对于.NET Core 3.1,我通过在 Startup 类中配置服务然后使用 CookiePolicy 中间件修复了此漏洞警告。
在ConfigureServices函数中:
services.Configure<CookiePolicyOptions>(options =>
{
options.Secure = CookieSecurePolicy.Always;
});
Run Code Online (Sandbox Code Playgroud)
在配置功能中:
app.UseCookiePolicy();
Run Code Online (Sandbox Code Playgroud)
这也可以用于修复中间件中的 HttpOnlyPolicy 漏洞,例如:
services.Configure<CookiePolicyOptions>(options =>
{
options.HttpOnly = HttpOnlyPolicy.Always;
options.Secure = CookieSecurePolicy.Always;
});
Run Code Online (Sandbox Code Playgroud)
请记住对中间件使用正确的顺序。您可以参考ASP.NET Core 中间件文档来了解更多信息并获取一些示例。
| 归档时间: |
|
| 查看次数: |
10783 次 |
| 最近记录: |