Relax style-src-elem to allow inline
This commit is contained in:
@@ -118,7 +118,11 @@ class ContentSecurityPolicy
|
||||
$styleSources[] = 'data:';
|
||||
$connectSources[] = 'https:';
|
||||
$fontSources[] = 'https:';
|
||||
$styleElemSources = array_unique(array_merge($styleSources, ["'unsafe-inline'"]));
|
||||
$styleElemSources = array_values(array_filter(
|
||||
$styleSources,
|
||||
static fn (string $source): bool => ! str_starts_with($source, "'nonce-")
|
||||
));
|
||||
$styleElemSources = array_unique(array_merge($styleElemSources, ["'unsafe-inline'"]));
|
||||
|
||||
$directives = [
|
||||
'default-src' => ["'self'"],
|
||||
|
||||
@@ -37,7 +37,7 @@ class SecurityHeadersTest extends TestCase
|
||||
$response->assertHeader('Permissions-Policy', 'camera=(), microphone=(), geolocation=()');
|
||||
$response->assertHeader('Content-Security-Policy');
|
||||
$response->assertHeaderContains('Content-Security-Policy', "style-src-elem 'self'");
|
||||
$response->assertHeaderContains('Content-Security-Policy', "'unsafe-inline'; style-src-attr");
|
||||
$response->assertHeaderContains('Content-Security-Policy', "style-src-elem 'self' https: data: 'unsafe-inline'");
|
||||
$response->assertHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
|
||||
$response->assertCookie('XSRF-TOKEN');
|
||||
|
||||
@@ -49,7 +49,7 @@ class SecurityHeadersTest extends TestCase
|
||||
$login->assertOk();
|
||||
$login->assertHeader('Content-Security-Policy');
|
||||
$login->assertHeaderContains('Content-Security-Policy', "style-src-elem 'self'");
|
||||
$login->assertHeaderContains('Content-Security-Policy', "'unsafe-inline'; style-src-attr");
|
||||
$login->assertHeaderContains('Content-Security-Policy', "style-src-elem 'self' https: data: 'unsafe-inline'");
|
||||
$login->assertHeader('X-Frame-Options', 'SAMEORIGIN');
|
||||
$login->assertCookie('XSRF-TOKEN');
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user