fix(api): drop helmet CSP upgrade-insecure-requests so Swagger UI loads over plain http

This commit is contained in:
yeuimu
2026-08-28 17:50:39 +08:00
parent b055aedd3e
commit e018f16d0b
+15 -3
View File
@@ -30,10 +30,22 @@ async function bootstrap() {
}),
);
// Security headers (X-Content-Type-Options, X-Frame-Options, CSP, HSTS, ...)
// Security headers (X-Content-Type-Options, X-Frame-Options, HSTS, ...)
// Static assets (/uploads, /assets) are embedded cross-origin by other
// sites, so CORP must allow cross-origin reads.
app.use(helmet({ crossOriginResourcePolicy: { policy: 'cross-origin' } }));
// sites, so CORP must allow cross-origin reads. CSP 去掉默认的
// upgrade-insecure-requestsSwagger UI 经纯 http 访问时该指令会把
// 自身子资源升级为 https,导致 ERR_SSL_PROTOCOL_ERROR。
app.use(
helmet({
crossOriginResourcePolicy: { policy: 'cross-origin' },
contentSecurityPolicy: {
useDefaults: true,
directives: {
'upgrade-insecure-requests': null,
},
},
}),
);
// Parse auth cookies (HttpOnly access/refresh tokens). Resolve both the
// namespace and its `default` interop shape so it works regardless of