Merge pull request #3341 from takluyver/csp-sandbox-files

Use CSP header to treat served files as belonging to a separate origin
Thomas Kluyver 8 years ago committed by GitHub
commit e321c80776
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -601,6 +601,13 @@ class Template404(IPythonHandler):
class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler):
"""static files should only be accessible when logged in"""
@property
def content_security_policy(self):
# In case we're serving HTML/SVG, confine any Javascript to a unique
# origin so it can't interact with the notebook server.
return super(AuthenticatedFileHandler, self).content_security_policy + \
"; sandbox allow-scripts"
@web.authenticated
def get(self, path):
if os.path.splitext(path)[1] == '.ipynb' or self.get_argument("download", False):

@ -26,6 +26,13 @@ class FilesHandler(IPythonHandler):
a subclass of StaticFileHandler.
"""
@property
def content_security_policy(self):
# In case we're serving HTML/SVG, confine any Javascript to a unique
# origin so it can't interact with the notebook server.
return super(FilesHandler, self).content_security_policy + \
"; sandbox allow-scripts"
@web.authenticated
def head(self, path):
self.get(path, include_body=False)

Loading…
Cancel
Save