Skip to content

Commit d3aac03

Browse files
committed
Merge pull request #247 from twitter/edge-directives
filter unsupported Edge directives
2 parents a6f8066 + 5908b0b commit d3aac03

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

lib/secure_headers/headers/policy_management.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ def self.included(base)
9191
UPGRADE_INSECURE_REQUESTS
9292
].freeze
9393

94+
EDGE_DIRECTIVES = DIRECTIVES_1_0
9495
SAFARI_DIRECTIVES = DIRECTIVES_1_0
9596

9697
FIREFOX_UNSUPPORTED_DIRECTIVES = [
@@ -118,6 +119,7 @@ def self.included(base)
118119
"Opera" => CHROME_DIRECTIVES,
119120
"Firefox" => FIREFOX_DIRECTIVES,
120121
"Safari" => SAFARI_DIRECTIVES,
122+
"Edge" => EDGE_DIRECTIVES,
121123
"Other" => CHROME_DIRECTIVES
122124
}.freeze
123125

spec/lib/secure_headers/headers/content_security_policy_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ module SecureHeaders
104104
expect(policy.value).to eq("default-src 'self'; base-uri 'self'; connect-src 'self'; font-src 'self'; form-action 'self'; frame-ancestors 'self'; frame-src 'self'; img-src 'self'; media-src 'self'; object-src 'self'; sandbox 'self'; script-src 'self' 'nonce-123456'; style-src 'self'; upgrade-insecure-requests; report-uri 'self'")
105105
end
106106

107+
it "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
108+
policy = ContentSecurityPolicy.new(complex_opts, USER_AGENTS[:edge])
109+
expect(policy.value).to eq("default-src 'self'; connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self'; media-src 'self'; object-src 'self'; sandbox 'self'; script-src 'self' 'unsafe-inline'; style-src 'self'; report-uri 'self'")
110+
end
111+
107112
it "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
108113
policy = ContentSecurityPolicy.new(complex_opts, USER_AGENTS[:safari6])
109114
expect(policy.value).to eq("default-src 'self'; connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self'; media-src 'self'; object-src 'self'; sandbox 'self'; script-src 'self' 'unsafe-inline'; style-src 'self'; report-uri 'self'")

spec/spec_helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212

1313
USER_AGENTS = {
14+
edge: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246",
1415
firefox: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
1516
chrome: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5',
1617
ie: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)',

0 commit comments

Comments
 (0)