diff --git a/.env.example b/.env.example index 2d55082..2c9e057 100644 --- a/.env.example +++ b/.env.example @@ -76,3 +76,11 @@ ENABLE_XCTO=1 # Ustawia podstawową politykę Content-Security-Policy (CSP), która ogranicza wczytywanie zasobów tylko z własnej domeny. # Zalecane: 1. Ustaw 0, jeśli używasz zewnętrznych skryptów lub masz problemy z WebSocketami (w CSP: connect-src 'self'). ENABLE_CSP=1 + + +# ENABLE_PP: +# Ustawia nagłówek Permissions-Policy, który ogranicza wybrane funkcje przeglądarki (np. Topics API od Google). +# Domyślnie wyłączone. Włączenie ustawi: Permissions-Policy: browsing-topics=() +# Zalecane: 1 — jeśli chcesz zwiększyć prywatność użytkowników i zablokować Topics API. +# Ustaw 0, jeśli chcesz całkowicie pominąć ten nagłówek. +ENABLE_PP=0 diff --git a/app.py b/app.py index d0e04a9..51dada5 100644 --- a/app.py +++ b/app.py @@ -82,14 +82,20 @@ if app.config.get("ENABLE_CSP", True): 'script-src': "'self' 'unsafe-inline'" } +permissions_policy = { + "browsing-topics": "()" +} if app.config["ENABLE_PP"] else None + talisman = Talisman( app, force_https=app.config.get("ENABLE_HSTS", True), strict_transport_security=app.config.get("ENABLE_HSTS", True), frame_options="DENY" if app.config.get("ENABLE_XFO", True) else None, + permissions_policy=permissions_policy, content_security_policy=csp_policy, x_content_type_options=app.config.get("ENABLE_XCTO", True), strict_transport_security_include_subdomains=False + ) register_heif_opener() # pillow_heif dla HEIC diff --git a/config.py b/config.py index 43240a9..9670bf2 100644 --- a/config.py +++ b/config.py @@ -35,3 +35,4 @@ class Config: ENABLE_XFO = os.environ.get("ENABLE_XFO", "0") == "1" ENABLE_XCTO = os.environ.get("ENABLE_XCTO", "0") == "1" ENABLE_CSP = os.environ.get("ENABLE_CSP", "0") == "1" + ENABLE_PP = os.environ.get("ENABLE_PP", "0") == "1"