[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - loleaflet/dist wsd/FileServer.cpp
Pranav Kant
pranavk at collabora.co.uk
Wed Apr 12 16:53:23 UTC 2017
loleaflet/dist/loleaflet.html | 7 -------
wsd/FileServer.cpp | 15 ++++++++++++++-
2 files changed, 14 insertions(+), 8 deletions(-)
New commits:
commit 00af954041c72f00e2813f4102fe22b6f52fa946
Author: Pranav Kant <pranavk at collabora.co.uk>
Date: Wed Apr 12 19:23:35 2017 +0530
Make CSP work in older browsers
This cherry-pick consists of following commits:
Move CSP to response headers from meta tag in html
(cherry picked from commit b7eafb1e4a8da6fced02af395581475f0332c2a7)
Use CSP without WOPI host too
(cherry picked from commit 699e8df9a7f99f59a5366e4f2506a69d71e8de9d)
Change-Id: I7f0d7c294e492b3c69ebea6fbd820d6558b9c3b3
Reviewed-on: https://gerrit.libreoffice.org/36480
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/loleaflet/dist/loleaflet.html b/loleaflet/dist/loleaflet.html
index 8b3f794c..bfa9ad3e 100644
--- a/loleaflet/dist/loleaflet.html
+++ b/loleaflet/dist/loleaflet.html
@@ -3,13 +3,6 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Online Editor</title>
<meta charset="utf-8">
-<meta http-equiv="Content-Security-Policy" content="default-src 'none';
- frame-src 'self' blob:;
- connect-src 'self' %HOST%;
- script-src 'self' 'unsafe-inline';
- style-src 'self' 'unsafe-inline';
- font-src 'self' data:;
- img-src 'self' data:;">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index 8968133b..ca742309 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -350,16 +350,29 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco::
<< "X-XSS-Protection: 1; mode=block\r\n"
<< "Referrer-Policy: no-referrer\r\n";
+ std::ostringstream cspOss;
+ cspOss << "Content-Security-Policy: default-src 'none'; "
+ << "frame-src 'self' blob:; "
+ << "connect-src 'self' " << host << "; "
+ << "script-src 'unsafe-inline' 'self'; "
+ << "style-src 'self' 'unsafe-inline'; "
+ << "font-src 'self' data:; "
+ << "img-src 'self' data:; ";
if (!wopiDomain.empty())
{
+ // Replaced by frame-ancestors in CSP but some oldies don't know about that
oss << "X-Frame-Options: allow-from " << wopiDomain << "\r\n";
- oss << "Content-Security-Policy: frame-ancestors " << wopiDomain << "\r\n";
+ cspOss << "frame-ancestors " << wopiDomain;
}
else
{
oss << "X-Frame-Options: deny\r\n";
}
+ cspOss << "\r\n";
+ // Append CSP to response headers too
+ oss << cspOss.str();
+
// Setup HTTP Public key pinning
if (LOOLWSD::isSSLEnabled() && config.getBool("ssl.hpkp[@enable]", false))
{
More information about the Libreoffice-commits
mailing list