fix(security): apply security hardening recommendations from audit
This commit implements several security enhancements based on the findings of a new security audit report, which has also been added to the documentation. - **Security Headers:** Adds a strict Content-Security-Policy (CSP) and other security headers (X-Content-Type-Options, Referrer-Policy) via Nuxt route rules. - **Production Hardening:** Disables Nuxt DevTools in production environments to reduce the attack surface. - **Mixed Content:** All image assets are now loaded over HTTPS to resolve mixed content issues. - **Tabnabbing:** Secures `window.open` calls by adding `noopener,noreferrer`. - **Configuration:** Updates `.gitignore` to ignore all `.env.*` files. - **Docs:** Adds the full security audit report for reference. - **Build:** Corrects a case-sensitive import path to ensure cross-platform build compatibility.
This commit is contained in:
@@ -11,7 +11,7 @@ const DEFAULT_SEO = {
|
||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||
export default defineNuxtConfig({
|
||||
compatibilityDate: "2025-07-15",
|
||||
devtools: { enabled: true },
|
||||
devtools: { enabled: process.env.NODE_ENV !== "production" },
|
||||
modules: [
|
||||
"@nuxt/content",
|
||||
"@nuxt/ui",
|
||||
@@ -24,6 +24,26 @@ export default defineNuxtConfig({
|
||||
whatsappNumber: "+601234567890",
|
||||
},
|
||||
},
|
||||
routeRules: {
|
||||
"/**": {
|
||||
headers: {
|
||||
"Content-Security-Policy": [
|
||||
"default-src 'self'",
|
||||
"script-src 'self'",
|
||||
"style-src 'self' 'unsafe-inline'",
|
||||
"img-src 'self' https://img.tootaio.com data:",
|
||||
"connect-src 'self'",
|
||||
"frame-ancestors 'self'",
|
||||
"upgrade-insecure-requests",
|
||||
].join("; "),
|
||||
"X-Content-Type-Options": "nosniff",
|
||||
"Referrer-Policy": "strict-origin-when-cross-origin",
|
||||
},
|
||||
},
|
||||
"/_nuxt/**": {
|
||||
headers: { "cache-control": "public, max-age=31536000, immutable" },
|
||||
},
|
||||
},
|
||||
css: ["@/assets/css/main.css"],
|
||||
app: {
|
||||
head: {
|
||||
|
||||
Reference in New Issue
Block a user