release: WRNexusJS 0.7.0
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import type { SecurityConfig } from "@wrnexus/core";
|
||||
|
||||
export type SecurityPreset = "balanced" | "strict" | "api";
|
||||
|
||||
export function securityPreset(preset: SecurityPreset = "balanced"): SecurityConfig {
|
||||
if (preset === "api") {
|
||||
return {
|
||||
contentSecurityPolicy: false,
|
||||
frameOptions: "DENY",
|
||||
crossOriginOpenerPolicy: "same-origin",
|
||||
referrerPolicy: "no-referrer",
|
||||
permissionsPolicy: {},
|
||||
extraHeaders: {
|
||||
"Cross-Origin-Resource-Policy": "same-origin",
|
||||
"Cache-Control": "no-store",
|
||||
},
|
||||
};
|
||||
}
|
||||
if (preset === "strict") {
|
||||
return {
|
||||
contentSecurityPolicy: {
|
||||
useDefaults: true,
|
||||
directives: {
|
||||
"style-src": ["'self'"],
|
||||
"script-src": ["'self'"],
|
||||
"upgrade-insecure-requests": [],
|
||||
},
|
||||
},
|
||||
trustedTypes: { enabled: true, policyNames: ["wrnexus"], requireForScript: true },
|
||||
hsts: { enabled: true, maxAge: 63_072_000, includeSubDomains: true, preload: true },
|
||||
extraHeaders: {
|
||||
"Cross-Origin-Resource-Policy": "same-origin",
|
||||
"Origin-Agent-Cluster": "?1",
|
||||
},
|
||||
};
|
||||
}
|
||||
return {
|
||||
contentSecurityPolicy: { useDefaults: true },
|
||||
trustedTypes: { enabled: true, requireForScript: true },
|
||||
extraHeaders: { "Cross-Origin-Resource-Policy": "same-origin" },
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user