Skip to content

Commit 3a0e8d0

Browse files
committed
Add support or setting Cross-Origin-Opener-Policy header
And default it to same-origin, the most locked down value. I don't think we need to allow it anywhere, but having this decorator makes it possible to override if needed.
1 parent c8db440 commit 3a0e8d0

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

pgweb/util/decorators.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ def _allow_frames(request, *_args, **_kwargs):
5757
return _allow_frames
5858

5959

60+
def origin_opener_policy(policy):
61+
def _origin_opener_policy(fn):
62+
def __origin_opener_policy(request, *_args, **_kwargs):
63+
resp = fn(request, *_args, **_kwargs)
64+
resp.x_origin_opener_policy = policy
65+
66+
return resp
67+
return __origin_opener_policy
68+
return _origin_opener_policy
69+
70+
6071
def content_sources(what, source):
6172
def _script_sources(fn):
6273
def __script_sources(request, *_args, **_kwargs):

pgweb/util/middleware.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ def __call__(self, request):
7575
else:
7676
response['Content-Security-Policy'] = " ; ".join(security_policies)
7777

78+
response['Cross-Origin-Opener-Policy'] = getattr(response, 'x_origin_opener_policy', 'same-origin')
79+
7880
response['X-XSS-Protection'] = "1; mode=block"
7981
return response
8082

0 commit comments

Comments
 (0)