OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "extensions/common/csp_validator.h" | 7 #include "extensions/common/csp_validator.h" |
8 #include "extensions/common/error_utils.h" | 8 #include "extensions/common/error_utils.h" |
9 #include "extensions/common/install_warning.h" | 9 #include "extensions/common/install_warning.h" |
10 #include "extensions/common/manifest_constants.h" | 10 #include "extensions/common/manifest_constants.h" |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 "default-src 'self'; script-src http://www.google.com")); | 117 "default-src 'self'; script-src http://www.google.com")); |
118 EXPECT_FALSE(ContentSecurityPolicyIsLegal( | 118 EXPECT_FALSE(ContentSecurityPolicyIsLegal( |
119 "default-src 'self';\nscript-src http://www.google.com")); | 119 "default-src 'self';\nscript-src http://www.google.com")); |
120 EXPECT_FALSE(ContentSecurityPolicyIsLegal( | 120 EXPECT_FALSE(ContentSecurityPolicyIsLegal( |
121 "default-src 'self';\rscript-src http://www.google.com")); | 121 "default-src 'self';\rscript-src http://www.google.com")); |
122 EXPECT_FALSE(ContentSecurityPolicyIsLegal( | 122 EXPECT_FALSE(ContentSecurityPolicyIsLegal( |
123 "default-src 'self';,script-src http://www.google.com")); | 123 "default-src 'self';,script-src http://www.google.com")); |
124 } | 124 } |
125 | 125 |
126 TEST(ExtensionCSPValidator, IsSecure) { | 126 TEST(ExtensionCSPValidator, IsSecure) { |
| 127 EXPECT_TRUE(CheckSanitizeCSP(std::string(), OPTIONS_ALLOW_UNSAFE_EVAL, |
| 128 "script-src 'self'; object-src 'self';", |
| 129 MissingSecureSrcWarning("script-src"), |
| 130 MissingSecureSrcWarning("object-src"))); |
127 EXPECT_TRUE(CheckSanitizeCSP( | 131 EXPECT_TRUE(CheckSanitizeCSP( |
128 std::string(), OPTIONS_ALLOW_UNSAFE_EVAL, | 132 "img-src https://google.com", OPTIONS_ALLOW_UNSAFE_EVAL, |
129 "script-src 'self' chrome-extension-resource:; object-src 'self';", | 133 "img-src https://google.com; script-src 'self'; object-src 'self';", |
130 MissingSecureSrcWarning("script-src"), | 134 MissingSecureSrcWarning("script-src"), |
131 MissingSecureSrcWarning("object-src"))); | 135 MissingSecureSrcWarning("object-src"))); |
132 EXPECT_TRUE(CheckSanitizeCSP( | 136 EXPECT_TRUE(CheckSanitizeCSP( |
133 "img-src https://google.com", OPTIONS_ALLOW_UNSAFE_EVAL, | |
134 "img-src https://google.com; script-src 'self'" | |
135 " chrome-extension-resource:; object-src 'self';", | |
136 MissingSecureSrcWarning("script-src"), | |
137 MissingSecureSrcWarning("object-src"))); | |
138 EXPECT_TRUE(CheckSanitizeCSP( | |
139 "script-src a b", OPTIONS_ALLOW_UNSAFE_EVAL, | 137 "script-src a b", OPTIONS_ALLOW_UNSAFE_EVAL, |
140 "script-src; object-src 'self';", | 138 "script-src; object-src 'self';", |
141 InsecureValueWarning("script-src", "a"), | 139 InsecureValueWarning("script-src", "a"), |
142 InsecureValueWarning("script-src", "b"), | 140 InsecureValueWarning("script-src", "b"), |
143 MissingSecureSrcWarning("object-src"))); | 141 MissingSecureSrcWarning("object-src"))); |
144 | 142 |
145 EXPECT_TRUE(CheckSanitizeCSP( | 143 EXPECT_TRUE(CheckSanitizeCSP( |
146 "default-src *", OPTIONS_ALLOW_UNSAFE_EVAL, | 144 "default-src *", OPTIONS_ALLOW_UNSAFE_EVAL, |
147 "default-src;", | 145 "default-src;", |
148 InsecureValueWarning("default-src", "*"))); | 146 InsecureValueWarning("default-src", "*"))); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 "default-src 'self' http://google.com", OPTIONS_ALLOW_UNSAFE_EVAL, | 205 "default-src 'self' http://google.com", OPTIONS_ALLOW_UNSAFE_EVAL, |
208 "default-src 'self';", | 206 "default-src 'self';", |
209 InsecureValueWarning("default-src", "http://google.com"))); | 207 InsecureValueWarning("default-src", "http://google.com"))); |
210 EXPECT_TRUE(CheckSanitizeCSP( | 208 EXPECT_TRUE(CheckSanitizeCSP( |
211 "default-src 'self' https://google.com;", OPTIONS_ALLOW_UNSAFE_EVAL)); | 209 "default-src 'self' https://google.com;", OPTIONS_ALLOW_UNSAFE_EVAL)); |
212 EXPECT_TRUE(CheckSanitizeCSP( | 210 EXPECT_TRUE(CheckSanitizeCSP( |
213 "default-src 'self' chrome://resources;", OPTIONS_ALLOW_UNSAFE_EVAL)); | 211 "default-src 'self' chrome://resources;", OPTIONS_ALLOW_UNSAFE_EVAL)); |
214 EXPECT_TRUE(CheckSanitizeCSP( | 212 EXPECT_TRUE(CheckSanitizeCSP( |
215 "default-src 'self' chrome-extension://aabbcc;", | 213 "default-src 'self' chrome-extension://aabbcc;", |
216 OPTIONS_ALLOW_UNSAFE_EVAL)); | 214 OPTIONS_ALLOW_UNSAFE_EVAL)); |
217 EXPECT_TRUE(CheckSanitizeCSP( | 215 // chrome-extension-resource (which doesn't exist anymore) is quietly ignored. |
218 "default-src 'self' chrome-extension-resource://aabbcc;", | 216 EXPECT_TRUE( |
219 OPTIONS_ALLOW_UNSAFE_EVAL)); | 217 CheckSanitizeCSP("default-src 'self' chrome-extension-resource://aabbcc;", |
220 EXPECT_TRUE(CheckSanitizeCSP( | 218 OPTIONS_ALLOW_UNSAFE_EVAL, "default-src 'self';")); |
221 "default-src 'self' https:", OPTIONS_ALLOW_UNSAFE_EVAL, | 219 EXPECT_TRUE( |
222 "default-src 'self';", | 220 CheckSanitizeCSP("default-src 'self' chrome-extension-resource://aabbcc " |
223 InsecureValueWarning("default-src", "https:"))); | 221 "chrome-extension://aabbcc;", |
| 222 OPTIONS_ALLOW_UNSAFE_EVAL, |
| 223 "default-src 'self' chrome-extension://aabbcc;")); |
| 224 EXPECT_TRUE(CheckSanitizeCSP("default-src 'self' https:", |
| 225 OPTIONS_ALLOW_UNSAFE_EVAL, "default-src 'self';", |
| 226 InsecureValueWarning("default-src", "https:"))); |
224 EXPECT_TRUE(CheckSanitizeCSP( | 227 EXPECT_TRUE(CheckSanitizeCSP( |
225 "default-src 'self' http:", OPTIONS_ALLOW_UNSAFE_EVAL, | 228 "default-src 'self' http:", OPTIONS_ALLOW_UNSAFE_EVAL, |
226 "default-src 'self';", | 229 "default-src 'self';", |
227 InsecureValueWarning("default-src", "http:"))); | 230 InsecureValueWarning("default-src", "http:"))); |
228 EXPECT_TRUE(CheckSanitizeCSP( | 231 EXPECT_TRUE(CheckSanitizeCSP( |
229 "default-src 'self' google.com", OPTIONS_ALLOW_UNSAFE_EVAL, | 232 "default-src 'self' google.com", OPTIONS_ALLOW_UNSAFE_EVAL, |
230 "default-src 'self';", | 233 "default-src 'self';", |
231 InsecureValueWarning("default-src", "google.com"))); | 234 InsecureValueWarning("default-src", "google.com"))); |
232 | 235 |
233 EXPECT_TRUE(CheckSanitizeCSP( | 236 EXPECT_TRUE(CheckSanitizeCSP( |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 "sandbox allow-top-navigation", Manifest::TYPE_EXTENSION)); | 450 "sandbox allow-top-navigation", Manifest::TYPE_EXTENSION)); |
448 EXPECT_FALSE(ContentSecurityPolicyIsSandboxed( | 451 EXPECT_FALSE(ContentSecurityPolicyIsSandboxed( |
449 "sandbox allow-top-navigation", Manifest::TYPE_PLATFORM_APP)); | 452 "sandbox allow-top-navigation", Manifest::TYPE_PLATFORM_APP)); |
450 | 453 |
451 // Popups are OK. | 454 // Popups are OK. |
452 EXPECT_TRUE(ContentSecurityPolicyIsSandboxed( | 455 EXPECT_TRUE(ContentSecurityPolicyIsSandboxed( |
453 "sandbox allow-popups", Manifest::TYPE_EXTENSION)); | 456 "sandbox allow-popups", Manifest::TYPE_EXTENSION)); |
454 EXPECT_TRUE(ContentSecurityPolicyIsSandboxed( | 457 EXPECT_TRUE(ContentSecurityPolicyIsSandboxed( |
455 "sandbox allow-popups", Manifest::TYPE_PLATFORM_APP)); | 458 "sandbox allow-popups", Manifest::TYPE_PLATFORM_APP)); |
456 } | 459 } |
OLD | NEW |