fix(csp): skip restrictive CSP on Wagtail/Django admin paths #25
@@ -18,10 +18,14 @@ class SecurityHeadersMiddleware:
|
|||||||
def __init__(self, get_response):
|
def __init__(self, get_response):
|
||||||
self.get_response = get_response
|
self.get_response = get_response
|
||||||
|
|
||||||
|
ADMIN_PREFIXES = ("/cms/", "/django-admin/")
|
||||||
|
|
||||||
def __call__(self, request):
|
def __call__(self, request):
|
||||||
nonce = secrets.token_urlsafe(16)
|
nonce = secrets.token_urlsafe(16)
|
||||||
request.csp_nonce = nonce
|
request.csp_nonce = nonce
|
||||||
response = self.get_response(request)
|
response = self.get_response(request)
|
||||||
|
if request.path.startswith(self.ADMIN_PREFIXES):
|
||||||
|
return response
|
||||||
response["Content-Security-Policy"] = (
|
response["Content-Security-Policy"] = (
|
||||||
f"default-src 'self'; "
|
f"default-src 'self'; "
|
||||||
f"script-src 'self' 'nonce-{nonce}'; "
|
f"script-src 'self' 'nonce-{nonce}'; "
|
||||||
|
|||||||
Reference in New Issue
Block a user