feat: enhance Content Security Policy and add mobile web app capability
This commit is contained in:
@@ -80,6 +80,7 @@ def create_app(config_name=None, config_overrides=None):
|
|||||||
"https://pagead2.googlesyndication.com",
|
"https://pagead2.googlesyndication.com",
|
||||||
"https://www.googletagmanager.com",
|
"https://www.googletagmanager.com",
|
||||||
"https://www.google-analytics.com",
|
"https://www.google-analytics.com",
|
||||||
|
"https://www.clarity.ms",
|
||||||
],
|
],
|
||||||
"style-src": ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"],
|
"style-src": ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"],
|
||||||
"font-src": ["'self'", "https://fonts.gstatic.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://www.google-analytics.com",
|
||||||
"https://pagead2.googlesyndication.com",
|
"https://pagead2.googlesyndication.com",
|
||||||
"https://*.amazonaws.com",
|
"https://*.amazonaws.com",
|
||||||
|
"https://*.adtrafficquality.google",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
talisman.init_app(
|
talisman.init_app(
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
content="Free online tools for PDF, image, video, and text processing. Merge, split, compress, convert, watermark, protect & more — instantly." />
|
content="Free online tools for PDF, image, video, and text processing. Merge, split, compress, convert, watermark, protect & more — instantly." />
|
||||||
<meta name="application-name" content="Dociva" />
|
<meta name="application-name" content="Dociva" />
|
||||||
<meta name="apple-mobile-web-app-title" content="Dociva" />
|
<meta name="apple-mobile-web-app-title" content="Dociva" />
|
||||||
|
<meta name="mobile-web-app-capable" content="yes" />
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
||||||
<meta name="theme-color" content="#2563eb" />
|
<meta name="theme-color" content="#2563eb" />
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ server {
|
|||||||
add_header X-XSS-Protection "1; mode=block" always;
|
add_header X-XSS-Protection "1; mode=block" always;
|
||||||
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
||||||
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" 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
|
# API requests → Flask backend
|
||||||
location /api/ {
|
location /api/ {
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ server {
|
|||||||
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
||||||
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
|
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
|
||||||
add_header X-Canonical-Host "dociva.io" 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
|
# SEO files — no cache, always fresh
|
||||||
location ~* ^/(sitemap\.xml|robots\.txt|llms\.txt|humans\.txt)$ {
|
location ~* ^/(sitemap\.xml|robots\.txt|llms\.txt|humans\.txt)$ {
|
||||||
|
|||||||
Reference in New Issue
Block a user