Fix CSP style-src-elem allowlist
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-24 23:16:23 +01:00
parent 694ce218c9
commit 8414305ea3
2 changed files with 7 additions and 9 deletions

View File

@@ -48,15 +48,6 @@ class ContentSecurityPolicy
"'nonce-{$styleNonce}'",
'https:',
];
$styleElemSources = [];
if ($allowUnsafeInlineStyles) {
$styleElemSources = [
"'self'",
"'unsafe-inline'",
'https:',
'data:',
];
}
$connectSources = [
"'self'",
@@ -129,6 +120,11 @@ class ContentSecurityPolicy
$styleSources[] = 'data:';
$connectSources[] = 'https:';
$fontSources[] = 'https:';
$styleElemSources = $styleSources;
if ($allowUnsafeInlineStyles) {
$styleElemSources = array_unique(array_merge($styleElemSources, ["'unsafe-inline'"]));
}
$directives = [
'default-src' => ["'self'"],

View File

@@ -36,6 +36,7 @@ class SecurityHeadersTest extends TestCase
$response->assertHeader('Referrer-Policy', 'strict-origin-when-cross-origin');
$response->assertHeader('Permissions-Policy', 'camera=(), microphone=(), geolocation=()');
$response->assertHeader('Content-Security-Policy');
$response->assertHeaderContains('Content-Security-Policy', "style-src-elem 'self'");
$response->assertHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
$response->assertCookie('XSRF-TOKEN');
@@ -46,6 +47,7 @@ class SecurityHeadersTest extends TestCase
$login->assertOk();
$login->assertHeader('Content-Security-Policy');
$login->assertHeaderContains('Content-Security-Policy', "style-src-elem 'self'");
$login->assertHeader('X-Frame-Options', 'SAMEORIGIN');
$login->assertCookie('XSRF-TOKEN');
} finally {