forked from Mike/freno-dev
16 lines
742 B
TypeScript
16 lines
742 B
TypeScript
import { defineMiddleware, setHeaders } from "vinxi/http";
|
|
|
|
// Security headers middleware — sets CSP and hardening headers on all responses
|
|
export default defineMiddleware({
|
|
onRequest: (event) => {
|
|
setHeaders(event, {
|
|
"Content-Security-Policy":
|
|
"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; connect-src 'self' https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'",
|
|
"X-Content-Type-Options": "nosniff",
|
|
"X-Frame-Options": "DENY",
|
|
"Referrer-Policy": "strict-origin-when-cross-origin",
|
|
"Permissions-Policy": "camera=(), microphone=(), geolocation=()"
|
|
});
|
|
}
|
|
});
|