@@ -124,7 +124,7 @@ module SecureHeaders
124124
125125 it "supports strict-dynamic" do
126126 csp = ContentSecurityPolicy . new ( { default_src : %w( 'self' ) , script_src : [ ContentSecurityPolicy ::STRICT_DYNAMIC ] , script_nonce : 123456 } , USER_AGENTS [ :chrome ] )
127- expect ( csp . value ) . to eq ( "default-src 'self'; script-src 'strict-dynamic' 'nonce-123456'" )
127+ expect ( csp . value ) . to eq ( "default-src 'self'; script-src 'strict-dynamic' 'nonce-123456' 'unsafe-inline' " )
128128 end
129129
130130 context "browser sniffing" do
@@ -143,44 +143,44 @@ module SecureHeaders
143143
144144 it "does not filter any directives for Chrome" do
145145 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :chrome ] )
146- expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; block-all-mixed-content; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; plugin-types application/pdf; sandbox allow-forms; script-src script-src.com 'nonce-123456'; style-src style-src.com; upgrade-insecure-requests; worker-src worker-src.com; report-uri report-uri.com" )
146+ expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; block-all-mixed-content; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; plugin-types application/pdf; sandbox allow-forms; script-src script-src.com 'nonce-123456' 'unsafe-inline' ; style-src style-src.com; upgrade-insecure-requests; worker-src worker-src.com; report-uri report-uri.com" )
147147 end
148148
149149 it "does not filter any directives for Opera" do
150150 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :opera ] )
151- expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; block-all-mixed-content; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; plugin-types application/pdf; sandbox allow-forms; script-src script-src.com 'nonce-123456'; style-src style-src.com; upgrade-insecure-requests; worker-src worker-src.com; report-uri report-uri.com" )
151+ expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; block-all-mixed-content; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; plugin-types application/pdf; sandbox allow-forms; script-src script-src.com 'nonce-123456' 'unsafe-inline' ; style-src style-src.com; upgrade-insecure-requests; worker-src worker-src.com; report-uri report-uri.com" )
152152 end
153153
154154 it "filters blocked-all-mixed-content, child-src, and plugin-types for firefox" do
155155 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :firefox ] )
156- expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; frame-src child-src.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456'; style-src style-src.com; upgrade-insecure-requests; report-uri report-uri.com" )
156+ expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; frame-src child-src.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456' 'unsafe-inline' ; style-src style-src.com; upgrade-insecure-requests; report-uri report-uri.com" )
157157 end
158158
159159 it "filters blocked-all-mixed-content, frame-src, and plugin-types for firefox 46 and higher" do
160160 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :firefox46 ] )
161- expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456'; style-src style-src.com; upgrade-insecure-requests; report-uri report-uri.com" )
161+ expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456' 'unsafe-inline' ; style-src style-src.com; upgrade-insecure-requests; report-uri report-uri.com" )
162162 end
163163
164- it "child-src value is copied to frame-src, adds 'unsafe-inline', filters base-uri, blocked-all-mixed-content, upgrade-insecure-requests, child-src, form-action, frame-ancestors, nonce sources, hash sources, and plugin-types for Edge" do
164+ it "child-src value is copied to frame-src, adds 'unsafe-inline', filters base-uri, blocked-all-mixed-content, upgrade-insecure-requests, child-src, form-action, frame-ancestors, hash sources, and plugin-types for Edge" do
165165 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :edge ] )
166- expect ( policy . value ) . to eq ( "default-src default-src.com; connect-src connect-src.com; font-src font-src.com; frame-src child-src.com; img-src img-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'unsafe-inline'; style-src style-src.com; report-uri report-uri.com" )
166+ expect ( policy . value ) . to eq ( "default-src default-src.com; connect-src connect-src.com; font-src font-src.com; frame-src child-src.com; img-src img-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456' ' unsafe-inline'; style-src style-src.com; report-uri report-uri.com" )
167167 end
168168
169- it "child-src value is copied to frame-src, adds 'unsafe-inline', filters base-uri, blocked-all-mixed-content, upgrade-insecure-requests, child-src, form-action, frame-ancestors, nonce sources, hash sources, and plugin-types for safari" do
169+ it "child-src value is copied to frame-src, adds 'unsafe-inline', filters base-uri, blocked-all-mixed-content, upgrade-insecure-requests, child-src, form-action, frame-ancestors, hash sources, and plugin-types for safari" do
170170 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :safari6 ] )
171- expect ( policy . value ) . to eq ( "default-src default-src.com; connect-src connect-src.com; font-src font-src.com; frame-src child-src.com; img-src img-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'unsafe-inline'; style-src style-src.com; report-uri report-uri.com" )
171+ expect ( policy . value ) . to eq ( "default-src default-src.com; connect-src connect-src.com; font-src font-src.com; frame-src child-src.com; img-src img-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456' ' unsafe-inline'; style-src style-src.com; report-uri report-uri.com" )
172172 end
173173
174- it "adds 'unsafe-inline', filters blocked-all-mixed-content, upgrade-insecure-requests, nonce sources, and hash sources for safari 10 and higher" do
174+ it "adds 'unsafe-inline', filters blocked-all-mixed-content, upgrade-insecure-requests, and hash sources for safari 10 and higher" do
175175 policy = ContentSecurityPolicy . new ( complex_opts , USER_AGENTS [ :safari10 ] )
176- expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; media-src media-src.com; object-src object-src.com; plugin-types application/pdf; sandbox allow-forms; script-src script-src.com 'nonce-123456'; style-src style-src.com; report-uri report-uri.com" )
176+ expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; child-src child-src.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; img-src img-src.com; media-src media-src.com; object-src object-src.com; plugin-types application/pdf; sandbox allow-forms; script-src script-src.com 'nonce-123456' 'unsafe-inline' ; style-src style-src.com; report-uri report-uri.com" )
177177 end
178178
179179 it "falls back to standard Firefox defaults when the useragent version is not present" do
180180 ua = USER_AGENTS [ :firefox ] . dup
181181 allow ( ua ) . to receive ( :version ) . and_return ( nil )
182182 policy = ContentSecurityPolicy . new ( complex_opts , ua )
183- expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; frame-src child-src.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456'; style-src style-src.com; upgrade-insecure-requests; report-uri report-uri.com" )
183+ expect ( policy . value ) . to eq ( "default-src default-src.com; base-uri base-uri.com; connect-src connect-src.com; font-src font-src.com; form-action form-action.com; frame-ancestors frame-ancestors.com; frame-src child-src.com; img-src img-src.com; manifest-src manifest-src.com; media-src media-src.com; object-src object-src.com; sandbox allow-forms; script-src script-src.com 'nonce-123456' 'unsafe-inline' ; style-src style-src.com; upgrade-insecure-requests; report-uri report-uri.com" )
184184 end
185185 end
186186 end
0 commit comments