namespace Nexus.Api.Middleware; public sealed class SecurityHeadersMiddleware(RequestDelegate next) { public async Task InvokeAsync(HttpContext context) { var headers = context.Response.Headers; var env = context.RequestServices.GetRequiredService(); if (!env.IsDevelopment()) { headers["Strict-Transport-Security"] = "max-age=31536000; includeSubDomains"; } headers["X-Content-Type-Options"] = "nosniff"; headers["Content-Security-Policy"] = "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'"; headers["X-Frame-Options"] = "DENY"; headers["Referrer-Policy"] = "strict-origin-when-cross-origin"; await next(context); } } public static class SecurityHeadersMiddlewareExtensions { public static IApplicationBuilder UseSecurityHeaders(this IApplicationBuilder builder) => builder.UseMiddleware(); }