diff --git a/backend/app/__init__.py b/backend/app/__init__.py index 689db5d..6fa770f 100644 --- a/backend/app/__init__.py +++ b/backend/app/__init__.py @@ -80,6 +80,7 @@ def create_app(config_name=None, config_overrides=None): "https://pagead2.googlesyndication.com", "https://www.googletagmanager.com", "https://www.google-analytics.com", + "https://www.clarity.ms", ], "style-src": ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"], "font-src": ["'self'", "https://fonts.gstatic.com"], @@ -99,6 +100,7 @@ def create_app(config_name=None, config_overrides=None): "https://www.google-analytics.com", "https://pagead2.googlesyndication.com", "https://*.amazonaws.com", + "https://*.adtrafficquality.google", ], } talisman.init_app( diff --git a/frontend/index.html b/frontend/index.html index 06d8db6..bcbf925 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -11,6 +11,7 @@ content="Free online tools for PDF, image, video, and text processing. Merge, split, compress, convert, watermark, protect & more — instantly." /> + diff --git a/nginx/nginx.conf b/nginx/nginx.conf index a4234b6..e509917 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -38,7 +38,7 @@ server { add_header X-XSS-Protection "1; mode=block" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always; - add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://pagead2.googlesyndication.com https://www.googletagmanager.com https://www.google-analytics.com https://plausible.io; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://pagead2.googlesyndication.com https://www.google-analytics.com; connect-src 'self' https://www.google-analytics.com https://pagead2.googlesyndication.com https://plausible.io; frame-src https://googleads.g.doubleclick.net https://tpc.googlesyndication.com; frame-ancestors 'self'" always; + add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://pagead2.googlesyndication.com https://www.googletagmanager.com https://www.google-analytics.com https://plausible.io https://www.clarity.ms; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://pagead2.googlesyndication.com https://www.google-analytics.com; connect-src 'self' https://www.google-analytics.com https://pagead2.googlesyndication.com https://plausible.io https://*.adtrafficquality.google; frame-src https://googleads.g.doubleclick.net https://tpc.googlesyndication.com; frame-ancestors 'self'" always; # API requests → Flask backend location /api/ { diff --git a/nginx/nginx.prod.conf b/nginx/nginx.prod.conf index c0e77d6..5b0de57 100644 --- a/nginx/nginx.prod.conf +++ b/nginx/nginx.prod.conf @@ -65,7 +65,7 @@ server { add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always; add_header X-Canonical-Host "dociva.io" always; - add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://pagead2.googlesyndication.com https://www.googletagmanager.com https://www.google-analytics.com https://plausible.io; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://pagead2.googlesyndication.com https://www.google-analytics.com; connect-src 'self' https://www.google-analytics.com https://pagead2.googlesyndication.com https://plausible.io; frame-src https://googleads.g.doubleclick.net https://tpc.googlesyndication.com; frame-ancestors 'self'" always; + add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://pagead2.googlesyndication.com https://www.googletagmanager.com https://www.google-analytics.com https://plausible.io https://www.clarity.ms; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: blob: https://pagead2.googlesyndication.com https://www.google-analytics.com; connect-src 'self' https://www.google-analytics.com https://pagead2.googlesyndication.com https://plausible.io https://*.adtrafficquality.google; frame-src https://googleads.g.doubleclick.net https://tpc.googlesyndication.com; frame-ancestors 'self'" always; # SEO files — no cache, always fresh location ~* ^/(sitemap\.xml|robots\.txt|llms\.txt|humans\.txt)$ {