UNPKG

@mangadex-pub/nuxt-security

Version:

🛡️ Security Module for Nuxt based on HTTP Headers and Middleware

16 lines (15 loc) 592 B
import crypto from "node:crypto"; import { defineEventHandler } from "h3"; import { getRouteRules } from "#imports"; export default defineEventHandler((event) => { let csp = `${event.node.res.getHeader("Content-Security-Policy")}`; const routeRules = getRouteRules(event); if (routeRules.security.nonce !== false) { const nonce = crypto.randomBytes(16).toString("base64"); event.context.nonce = nonce; csp = csp.replaceAll("{{nonce}}", nonce); } else { csp = csp.replaceAll("'nonce-{{nonce}}'", ""); } event.node.res.setHeader("Content-Security-Policy", csp); });