""" Security configuration for thrillwiki project. """ import environ env = environ.Env() # Cloudflare Turnstile settings TURNSTILE_SITE_KEY = env('TURNSTILE_SITE_KEY', default='') TURNSTILE_SECRET_KEY = env('TURNSTILE_SECRET_KEY', default='') TURNSTILE_VERIFY_URL = env('TURNSTILE_VERIFY_URL', default='https://challenges.cloudflare.com/turnstile/v0/siteverify') # Security headers and settings (for production) SECURE_BROWSER_XSS_FILTER = env.bool('SECURE_BROWSER_XSS_FILTER', default=True) SECURE_CONTENT_TYPE_NOSNIFF = env.bool('SECURE_CONTENT_TYPE_NOSNIFF', default=True) SECURE_HSTS_INCLUDE_SUBDOMAINS = env.bool('SECURE_HSTS_INCLUDE_SUBDOMAINS', default=True) SECURE_HSTS_SECONDS = env.int('SECURE_HSTS_SECONDS', default=31536000) # 1 year SECURE_REDIRECT_EXEMPT = env.list('SECURE_REDIRECT_EXEMPT', default=[]) SECURE_SSL_REDIRECT = env.bool('SECURE_SSL_REDIRECT', default=False) SECURE_PROXY_SSL_HEADER = env.tuple('SECURE_PROXY_SSL_HEADER', default=None) # Session security SESSION_COOKIE_SECURE = env.bool('SESSION_COOKIE_SECURE', default=False) SESSION_COOKIE_HTTPONLY = env.bool('SESSION_COOKIE_HTTPONLY', default=True) SESSION_COOKIE_SAMESITE = env('SESSION_COOKIE_SAMESITE', default='Lax') # CSRF security CSRF_COOKIE_SECURE = env.bool('CSRF_COOKIE_SECURE', default=False) CSRF_COOKIE_HTTPONLY = env.bool('CSRF_COOKIE_HTTPONLY', default=True) CSRF_COOKIE_SAMESITE = env('CSRF_COOKIE_SAMESITE', default='Lax')