feat(admin/security): implement IP Lockout service for brute-force defense and compact administrative UI density
TaxBaik CI/CD / build-and-deploy (push) Successful in 57s

This commit is contained in:
2026-07-10 17:06:00 +09:00
parent 4d3933f22e
commit e0945f46a6
11 changed files with 612 additions and 321 deletions
+2 -1
View File
@@ -95,6 +95,7 @@ builder.Services.AddRateLimiter(options =>
});
// Razor Pages
builder.Services.AddSingleton<IIpLockoutService, IpLockoutService>();
builder.Services.AddRazorPages();
// Session & TempData (쿠키 저장소)
@@ -358,7 +359,7 @@ app.Use(async (context, next) =>
context.Response.Headers["X-Permitted-Cross-Domain-Policies"] = "none";
if (!context.Response.Headers.ContainsKey("Content-Security-Policy"))
{
context.Response.Headers["Content-Security-Policy"] = "default-src 'self'; img-src 'self' data: https:; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com data:; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://www.googletagmanager.com https://static.cloudflareinsights.com; connect-src 'self' https: https://cloudflareinsights.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self';";
context.Response.Headers["Content-Security-Policy"] = "default-src 'self'; img-src 'self' data: https:; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net data:; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://www.googletagmanager.com https://static.cloudflareinsights.com; connect-src 'self' https: https://cloudflareinsights.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self';";
}
await next();