File tree Expand file tree Collapse file tree 5 files changed +11
-2
lines changed
Expand file tree Collapse file tree 5 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -95,6 +95,7 @@ SecureHeaders::Configuration.default do |config|
9595 plugin_types: %w(application/x-shockwave-flash) ,
9696 script_src: %w('self') ,
9797 style_src: %w('unsafe-inline') ,
98+ worker_src: %w('self') ,
9899 upgrade_insecure_requests: true , # see https://www.w3.org/TR/upgrade-insecure-requests/
99100 report_uri: %w(https://report-uri.io/example-csp)
100101 }
Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ def initialize(hash)
3838 @script_src = nil
3939 @style_nonce = nil
4040 @style_src = nil
41+ @worker_src = nil
4142 @upgrade_insecure_requests = nil
4243
4344 from_hash ( hash )
Original file line number Diff line number Diff line change @@ -72,10 +72,13 @@ def self.included(base)
7272 BLOCK_ALL_MIXED_CONTENT = :block_all_mixed_content
7373 MANIFEST_SRC = :manifest_src
7474 UPGRADE_INSECURE_REQUESTS = :upgrade_insecure_requests
75+ WORKER_SRC = :worker_src
76+
7577 DIRECTIVES_3_0 = [
7678 DIRECTIVES_2_0 ,
7779 BLOCK_ALL_MIXED_CONTENT ,
7880 MANIFEST_SRC ,
81+ WORKER_SRC ,
7982 UPGRADE_INSECURE_REQUESTS
8083 ] . flatten . freeze
8184
@@ -86,6 +89,7 @@ def self.included(base)
8689 FIREFOX_UNSUPPORTED_DIRECTIVES = [
8790 BLOCK_ALL_MIXED_CONTENT ,
8891 CHILD_SRC ,
92+ WORKER_SRC ,
8993 PLUGIN_TYPES
9094 ] . freeze
9195
@@ -95,6 +99,7 @@ def self.included(base)
9599
96100 FIREFOX_46_UNSUPPORTED_DIRECTIVES = [
97101 BLOCK_ALL_MIXED_CONTENT ,
102+ WORKER_SRC ,
98103 PLUGIN_TYPES
99104 ] . freeze
100105
@@ -148,6 +153,7 @@ def self.included(base)
148153 SANDBOX => :sandbox_list ,
149154 SCRIPT_SRC => :source_list ,
150155 STYLE_SRC => :source_list ,
156+ WORKER_SRC => :source_list ,
151157 UPGRADE_INSECURE_REQUESTS => :boolean
152158 } . freeze
153159
Original file line number Diff line number Diff line change @@ -143,12 +143,12 @@ 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; 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'; 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; 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'; 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
Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ module SecureHeaders
3333 object_src : %w( 'self' ) ,
3434 script_src : %w( 'self' ) ,
3535 style_src : %w( 'unsafe-inline' ) ,
36+ worker_src : %w( worker.com ) ,
3637 base_uri : %w( 'self' ) ,
3738 form_action : %w( 'self' github.com ) ,
3839 frame_ancestors : %w( 'none' ) ,
You can’t perform that action at this time.
0 commit comments