From 76cbd7db6e69340cb53b8333f129373f3044bdc3 Mon Sep 17 00:00:00 2001 From: J0WI Date: Mon, 1 Jul 2019 18:40:17 +0200 Subject: [PATCH 1/4] Add X-Frame-Options header to .htaccess Signed-off-by: J0WI --- .htaccess | 1 + lib/private/legacy/response.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.htaccess b/.htaccess index cc2e0c95eb..ba9ec86081 100644 --- a/.htaccess +++ b/.htaccess @@ -17,6 +17,7 @@ Header set X-Download-Options "noopen" Header set X-Permitted-Cross-Domain-Policies "none" Header set Referrer-Policy "no-referrer" + Header set X-Frame-Options "SAMEORIGIN" SetEnv modHeadersAvailable true diff --git a/lib/private/legacy/response.php b/lib/private/legacy/response.php index 361a085c0c..01c96c0922 100644 --- a/lib/private/legacy/response.php +++ b/lib/private/legacy/response.php @@ -94,7 +94,6 @@ class OC_Response { . 'object-src \'none\'; ' . 'base-uri \'self\'; '; header('Content-Security-Policy:' . $policy); - header('X-Frame-Options: SAMEORIGIN'); // Disallow iFraming from other domains // Send fallback headers for installations that don't have the possibility to send // custom headers on the webserver side @@ -105,6 +104,7 @@ class OC_Response { header('X-Download-Options: noopen'); // https://msdn.microsoft.com/en-us/library/jj542450(v=vs.85).aspx header('X-Permitted-Cross-Domain-Policies: none'); // https://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html header('Referrer-Policy: no-referrer'); // https://www.w3.org/TR/referrer-policy/ + header('X-Frame-Options: SAMEORIGIN'); // Disallow iFraming from other domains } } From 3f2932c75a44feed4d10183fb7a286ed1b1e8ce4 Mon Sep 17 00:00:00 2001 From: J0WI Date: Mon, 1 Jul 2019 18:41:04 +0200 Subject: [PATCH 2/4] Sort headers Signed-off-by: J0WI --- .htaccess | 10 +++++----- lib/private/legacy/response.php | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.htaccess b/.htaccess index ba9ec86081..a81b676526 100644 --- a/.htaccess +++ b/.htaccess @@ -11,13 +11,13 @@ # Add security and privacy related headers - Header set X-Content-Type-Options "nosniff" - Header set X-XSS-Protection "1; mode=block" - Header set X-Robots-Tag "none" - Header set X-Download-Options "noopen" - Header set X-Permitted-Cross-Domain-Policies "none" Header set Referrer-Policy "no-referrer" + Header set X-Content-Type-Options "nosniff" + Header set X-Download-Options "noopen" Header set X-Frame-Options "SAMEORIGIN" + Header set X-Permitted-Cross-Domain-Policies "none" + Header set X-Robots-Tag "none" + Header set X-XSS-Protection "1; mode=block" SetEnv modHeadersAvailable true diff --git a/lib/private/legacy/response.php b/lib/private/legacy/response.php index 01c96c0922..73bafe70c3 100644 --- a/lib/private/legacy/response.php +++ b/lib/private/legacy/response.php @@ -98,13 +98,13 @@ class OC_Response { // Send fallback headers for installations that don't have the possibility to send // custom headers on the webserver side if(getenv('modHeadersAvailable') !== 'true') { - header('X-XSS-Protection: 1; mode=block'); // Enforce browser based XSS filters - header('X-Content-Type-Options: nosniff'); // Disable sniffing the content type for IE - header('X-Robots-Tag: none'); // https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag - header('X-Download-Options: noopen'); // https://msdn.microsoft.com/en-us/library/jj542450(v=vs.85).aspx - header('X-Permitted-Cross-Domain-Policies: none'); // https://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html header('Referrer-Policy: no-referrer'); // https://www.w3.org/TR/referrer-policy/ + header('X-Content-Type-Options: nosniff'); // Disable sniffing the content type for IE + header('X-Download-Options: noopen'); // https://msdn.microsoft.com/en-us/library/jj542450(v=vs.85).aspx header('X-Frame-Options: SAMEORIGIN'); // Disallow iFraming from other domains + header('X-Permitted-Cross-Domain-Policies: none'); // https://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html + header('X-Robots-Tag: none'); // https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag + header('X-XSS-Protection: 1; mode=block'); // Enforce browser based XSS filters } } From bd9403d3da5150389508c11e6a7beacf61c192ff Mon Sep 17 00:00:00 2001 From: J0WI Date: Mon, 1 Jul 2019 18:41:59 +0200 Subject: [PATCH 3/4] Use "always" condition for security headers Signed-off-by: J0WI --- .htaccess | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.htaccess b/.htaccess index a81b676526..43c8ea2206 100644 --- a/.htaccess +++ b/.htaccess @@ -11,13 +11,13 @@ # Add security and privacy related headers - Header set Referrer-Policy "no-referrer" - Header set X-Content-Type-Options "nosniff" - Header set X-Download-Options "noopen" - Header set X-Frame-Options "SAMEORIGIN" - Header set X-Permitted-Cross-Domain-Policies "none" - Header set X-Robots-Tag "none" - Header set X-XSS-Protection "1; mode=block" + Header always set Referrer-Policy "no-referrer" + Header always set X-Content-Type-Options "nosniff" + Header always set X-Download-Options "noopen" + Header always set X-Frame-Options "SAMEORIGIN" + Header always set X-Permitted-Cross-Domain-Policies "none" + Header always set X-Robots-Tag "none" + Header always set X-XSS-Protection "1; mode=block" SetEnv modHeadersAvailable true From 1b074f48d824107de651a34a3948692cb5ca448f Mon Sep 17 00:00:00 2001 From: J0WI Date: Mon, 1 Jul 2019 18:45:27 +0200 Subject: [PATCH 4/4] Remove duplicated spaces Signed-off-by: J0WI --- .htaccess | 4 ++-- lib/private/legacy/response.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.htaccess b/.htaccess index 43c8ea2206..2a4c8dfe5b 100644 --- a/.htaccess +++ b/.htaccess @@ -41,8 +41,8 @@ RewriteEngine on - RewriteCond %{HTTP_USER_AGENT} DavClnt - RewriteRule ^$ /remote.php/webdav/ [L,R=302] + RewriteCond %{HTTP_USER_AGENT} DavClnt + RewriteRule ^$ /remote.php/webdav/ [L,R=302] RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L] RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L] diff --git a/lib/private/legacy/response.php b/lib/private/legacy/response.php index 73bafe70c3..46d90816db 100644 --- a/lib/private/legacy/response.php +++ b/lib/private/legacy/response.php @@ -89,7 +89,7 @@ class OC_Response { . 'frame-src *; ' . 'img-src * data: blob:; ' . 'font-src \'self\' data:; ' - . 'media-src *; ' + . 'media-src *; ' . 'connect-src *; ' . 'object-src \'none\'; ' . 'base-uri \'self\'; ';