Skip to content

Commit 6fecc94

Browse files
committed
Don't add csp-headers if none are required
1 parent 87dcda8 commit 6fecc94

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/Symfony/Bundle/WebProfilerBundle/Csp/ContentSecurityPolicyHandler.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ private function updateCspHeaders(Response $response, array $nonces = array())
135135
if (isset($headers[$header]['default-src'])) {
136136
$headers[$header][$type] = $headers[$header]['default-src'];
137137
} else {
138-
$headers[$header][$type] = array();
138+
// If there is no script-src/style-src and no default-src, no additional rules required.
139+
continue;
139140
}
140141
}
141142
$ruleIsSet = true;

src/Symfony/Bundle/WebProfilerBundle/Tests/Csp/ContentSecurityPolicyHandlerTest.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,13 @@ public function provideRequestAndResponsesForOnKernelResponse()
118118
$this->createResponse($responseNonceHeaders),
119119
array('Content-Security-Policy' => null, 'X-Content-Security-Policy' => null),
120120
),
121+
array(
122+
$nonce,
123+
array('csp_script_nonce' => $nonce, 'csp_style_nonce' => $nonce),
124+
$this->createRequest(),
125+
$this->createResponse(array('Content-Security-Policy' => 'frame-ancestors https: ; form-action: https:')),
126+
array('Content-Security-Policy' => 'frame-ancestors https: ; form-action: https:', 'X-Content-Security-Policy' => null),
127+
),
121128
array(
122129
$nonce,
123130
array('csp_script_nonce' => $nonce, 'csp_style_nonce' => $nonce),
@@ -130,7 +137,7 @@ public function provideRequestAndResponsesForOnKernelResponse()
130137
array('csp_script_nonce' => $nonce, 'csp_style_nonce' => $nonce),
131138
$this->createRequest(),
132139
$this->createResponse(array('Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\'')),
133-
array('Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\'; style-src \'unsafe-inline\' \'nonce-'.$nonce.'\'', 'X-Content-Security-Policy' => null),
140+
array('Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\'', 'X-Content-Security-Policy' => null),
134141
),
135142
array(
136143
$nonce,
@@ -144,21 +151,21 @@ public function provideRequestAndResponsesForOnKernelResponse()
144151
array('csp_script_nonce' => $nonce, 'csp_style_nonce' => $nonce),
145152
$this->createRequest(),
146153
$this->createResponse(array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\'')),
147-
array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\'; style-src \'unsafe-inline\' \'nonce-'.$nonce.'\'', 'Content-Security-Policy' => null),
154+
array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\'', 'Content-Security-Policy' => null),
148155
),
149156
array(
150157
$nonce,
151158
array('csp_script_nonce' => $nonce, 'csp_style_nonce' => $nonce),
152159
$this->createRequest(),
153160
$this->createResponse(array('X-Content-Security-Policy' => 'script-src \'self\'')),
154-
array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\' \'nonce-'.$nonce.'\'; style-src \'unsafe-inline\' \'nonce-'.$nonce.'\'', 'Content-Security-Policy' => null),
161+
array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\' \'nonce-'.$nonce.'\'', 'Content-Security-Policy' => null),
155162
),
156163
array(
157164
$nonce,
158165
array('csp_script_nonce' => $nonce, 'csp_style_nonce' => $nonce),
159166
$this->createRequest(),
160167
$this->createResponse(array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\' \'sha384-LALALALALAAL\'')),
161-
array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\' \'sha384-LALALALALAAL\' \'nonce-'.$nonce.'\'; style-src \'unsafe-inline\' \'nonce-'.$nonce.'\'', 'Content-Security-Policy' => null),
168+
array('X-Content-Security-Policy' => 'script-src \'self\' \'unsafe-inline\' \'sha384-LALALALALAAL\' \'nonce-'.$nonce.'\'', 'Content-Security-Policy' => null),
162169
),
163170
array(
164171
$nonce,

0 commit comments

Comments
 (0)