summaryrefslogtreecommitdiff
path: root/django/middleware/security.py
diff options
context:
space:
mode:
authorNick Pope <nick.pope@flightdataservices.com>2019-03-21 21:33:41 +0000
committerCarlton Gibson <carlton.gibson@noumenal.es>2019-09-09 13:35:41 +0200
commit406dba04e1482a308cad74e3d06c050c76ba2d16 (patch)
treed5ec1f049f18481b620d993938d21de83d547673 /django/middleware/security.py
parent1edbb6c19405a629200ba3683968f3dba2744e7e (diff)
Fixed #29406 -- Added support for Referrer-Policy header.
Thanks to James Bennett for the initial implementation.
Diffstat (limited to 'django/middleware/security.py')
-rw-r--r--django/middleware/security.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/django/middleware/security.py b/django/middleware/security.py
index dfca3b64de..c0877b350a 100644
--- a/django/middleware/security.py
+++ b/django/middleware/security.py
@@ -15,6 +15,7 @@ class SecurityMiddleware(MiddlewareMixin):
self.redirect = settings.SECURE_SSL_REDIRECT
self.redirect_host = settings.SECURE_SSL_HOST
self.redirect_exempt = [re.compile(r) for r in settings.SECURE_REDIRECT_EXEMPT]
+ self.referrer_policy = settings.SECURE_REFERRER_POLICY
self.get_response = get_response
def process_request(self, request):
@@ -43,4 +44,12 @@ class SecurityMiddleware(MiddlewareMixin):
if self.xss_filter:
response.setdefault('X-XSS-Protection', '1; mode=block')
+ if self.referrer_policy:
+ # Support a comma-separated string or iterable of values to allow
+ # fallback.
+ response.setdefault('Referrer-Policy', ','.join(
+ [v.strip() for v in self.referrer_policy.split(',')]
+ if isinstance(self.referrer_policy, str) else self.referrer_policy
+ ))
+
return response