跳到主要内容
版本:Next

安全响应头

Sharkable 提供了可选的中间件,用于添加标准的安全 HTTP 响应头。所有头默认禁用——你选择启用哪些。

快速开始

builder.Services.AddShark(opt =>
{
opt.ConfigureSecurityHeaders(h =>
{
h.ContentTypeOptions = true;
h.FrameOptions = "DENY";
h.ReferrerPolicy = "no-referrer";
h.StrictTransportSecurity = true;
});
});

var app = builder.Build();
app.UseShark();

配置

选项类型默认值说明
ContentTypeOptionsboolfalse添加 X-Content-Type-Options: nosniff
FrameOptionsstring?nullX-Frame-Options 值(如 "DENY"
ReferrerPolicystring?nullReferrer-Policy
ContentSecurityPolicystring?nullContent-Security-Policy
PermissionsPolicystring?nullPermissions-Policy
StrictTransportSecurityboolfalse添加 HSTS
HstsMaxAgeint31536000HSTS max-age(秒)
CrossOriginResourcePolicystring?nullCross-Origin-Resource-Policy
CrossOriginOpenerPolicystring?nullCross-Origin-Opener-Policy
CrossOriginEmbedderPolicystring?nullCross-Origin-Embedder-Policy
ExcludePathsstring[][]跳过的路径前缀

工作原理

头部通过 context.Response.OnStarting() 注册——在首次写入前添加,因此会出现在所有响应(包括错误响应)上。中间件在管道中较早运行(响应压缩之后、优雅关闭之前)。

AOT

完全 AOT 兼容,无反射。

安全

所有用户提供的头部值在启动时通过 ConfigurationValidator 验证,阻止 CR/LF/NUL 字符以防止头部注入攻击。