SECURITY: email domain whitelist could be bypassed
This commit is contained in:
parent
34ed6088b9
commit
2a22b90538
|
@ -22,7 +22,7 @@ class EmailValidator < ActiveModel::EachValidator
|
||||||
|
|
||||||
def self.email_in_restriction_setting?(setting, value)
|
def self.email_in_restriction_setting?(setting, value)
|
||||||
domains = setting.gsub('.', '\.')
|
domains = setting.gsub('.', '\.')
|
||||||
regexp = Regexp.new("@(.+\\.)?(#{domains})", true)
|
regexp = Regexp.new("@(.+\\.)?(#{domains})$", true)
|
||||||
value =~ regexp
|
value =~ regexp
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ describe EmailValidator do
|
||||||
expect(blocks?('sam@bob.email.com')).to eq(false)
|
expect(blocks?('sam@bob.email.com')).to eq(false)
|
||||||
expect(blocks?('sam@e-mail.com')).to eq(true)
|
expect(blocks?('sam@e-mail.com')).to eq(true)
|
||||||
expect(blocks?('sam@googlemail.com')).to eq(false)
|
expect(blocks?('sam@googlemail.com')).to eq(false)
|
||||||
|
expect(blocks?('sam@email.computers.are.evil.com')).to eq(true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue