summaryrefslogtreecommitdiff
path: root/internal/middleware/extraheaders.go
diff options
context:
space:
mode:
authorLibravatar Daenney <daenney@users.noreply.github.com>2023-08-12 12:21:48 +0200
committerLibravatar GitHub <noreply@github.com>2023-08-12 12:21:48 +0200
commit5e368d308942b8727e3086065a515d5fc9808e50 (patch)
treea4dd31d6f9d514abcb8cd1b06edb6831510b1cd3 /internal/middleware/extraheaders.go
parent[bugfix] Add s3 endpoint as image-src and media-src for CSP (#2103) (diff)
downloadgotosocial-5e368d308942b8727e3086065a515d5fc9808e50.tar.xz
[bugfix] CSP policy fixes for S3/object storage (#2104)
* [bugfix] CSP policy fixes for S3 in non-proxied mode * It should be img-src * In both img-src and media-src we still need to include 'self'
Diffstat (limited to 'internal/middleware/extraheaders.go')
-rw-r--r--internal/middleware/extraheaders.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/internal/middleware/extraheaders.go b/internal/middleware/extraheaders.go
index cd207a9f1..be7591be1 100644
--- a/internal/middleware/extraheaders.go
+++ b/internal/middleware/extraheaders.go
@@ -83,11 +83,15 @@ func BuildContentSecurityPolicy() string {
// Construct endpoint URL.
s3EndpointURLStr := scheme + "://" + s3Endpoint
+ // When object storage is in use in non-proxied mode, GtS still serves some
+ // assets itself like the logo, so keep 'self' in there. That should also
+ // handle any redirects from the fileserver to object storage.
+
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src
- policy += "; image-src " + s3EndpointURLStr
+ policy += "; img-src 'self' " + s3EndpointURLStr
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/media-src
- policy += "; media-src " + s3EndpointURLStr
+ policy += "; media-src 'self' " + s3EndpointURLStr
return policy
}