From 8155db669baff9aac5617a7aaf68dd35823ed7c9 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 12 Apr 2021 15:33:54 +0200 Subject: Dissociate frameguard from csp --- server/initializers/checker-before-init.ts | 1 + server/initializers/config.ts | 5 +++++ server/tests/api/server/config.ts | 34 ++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) (limited to 'server') diff --git a/server/initializers/checker-before-init.ts b/server/initializers/checker-before-init.ts index e92cc4d2c..2864b0287 100644 --- a/server/initializers/checker-before-init.ts +++ b/server/initializers/checker-before-init.ts @@ -17,6 +17,7 @@ function checkMissedConfig () { 'log.level', 'user.video_quota', 'user.video_quota_daily', 'csp.enabled', 'csp.report_only', 'csp.report_uri', + 'security.frameguard.enabled', 'cache.previews.size', 'cache.captions.size', 'cache.torrents.size', 'admin.email', 'contact_form.enabled', 'signup.enabled', 'signup.limit', 'signup.requires_email_verification', 'signup.filters.cidr.whitelist', 'signup.filters.cidr.blacklist', diff --git a/server/initializers/config.ts b/server/initializers/config.ts index 4e15acd0d..5281d3a66 100644 --- a/server/initializers/config.ts +++ b/server/initializers/config.ts @@ -134,6 +134,11 @@ const CONFIG = { REPORT_ONLY: config.get('csp.report_only'), REPORT_URI: config.get('csp.report_uri') }, + SECURITY: { + FRAMEGUARD: { + ENABLED: config.get('security.frameguard.enabled') + } + }, TRACKER: { ENABLED: config.get('tracker.enabled'), PRIVATE: config.get('tracker.private'), diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts index 0b0f48d22..1d9ea31df 100644 --- a/server/tests/api/server/config.ts +++ b/server/tests/api/server/config.ts @@ -12,6 +12,7 @@ import { getConfig, getCustomConfig, killallServers, + makeGetRequest, parallelTests, registerUser, reRunServer, @@ -508,6 +509,39 @@ describe('Test config', function () { checkInitialConfig(server, data) }) + it('Should enable frameguard', async function () { + this.timeout(25000) + + { + const res = await makeGetRequest({ + url: server.url, + path: '/api/v1/config', + statusCodeExpected: 200 + }) + + expect(res.headers['x-frame-options']).to.exist + } + + killallServers([ server ]) + + const config = { + security: { + frameguard: { enabled: false } + } + } + server = await reRunServer(server, config) + + { + const res = await makeGetRequest({ + url: server.url, + path: '/api/v1/config', + statusCodeExpected: 200 + }) + + expect(res.headers['x-frame-options']).to.not.exist + } + }) + after(async function () { await cleanupTests([ server ]) }) -- cgit v1.2.3