提交 ae776523 编写于 作者: J Justin Collins

Remove fuzzy matching for CheckModelAttrAccessible

in practice, this ends up with annoying false positives
上级 46e2d805
......@@ -11,9 +11,9 @@ class Brakeman::CheckModelAttrAccessible < Brakeman::BaseCheck
@description = "Reports models which have dangerous attributes defined under the attr_accessible whitelist."
SUSP_ATTRS = [
[/admin/, CONFIDENCE[:high]], # Very dangerous unless some Rails authorization used
[/role/, CONFIDENCE[:med]],
[/banned/, CONFIDENCE[:med]],
[:admin, CONFIDENCE[:high]], # Very dangerous unless some Rails authorization used
[:role, CONFIDENCE[:med]],
[:banned, CONFIDENCE[:med]],
[:account_id, CONFIDENCE[:high]],
[/\S*_id(s?)\z/, CONFIDENCE[:low]] # All other foreign keys have weak/low confidence
]
......
......@@ -3,4 +3,5 @@ class Account < ActiveRecord::Base
validates :phone, :format => { :with => /(\d{3})-(\d{3})-(\d{4})/, :on => :create }, :presence => true
validates :first_name, :format => /\w+/
serialize :cc_info #safe from CVE-2013-0277
attr_accessible :blah_admin_blah
end
......@@ -1044,6 +1044,16 @@ class Rails31Tests < Test::Unit::TestCase
:relative_path => "app/models/user.rb"
end
def test_attr_accessible_not_matching_regex
assert_no_warning :type => :model,
:warning_code => 60,
:fingerprint => "e933f99c33bece852891a466b5b0fc629d9f20ba80ff3bbc42adfd239d5a5b48",
:warning_type => "Mass Assignment",
:message => /^Potentially\ dangerous\ attribute\ blah_admin/,
:confidence => 0,
:relative_path => "app/models/account.rb"
end
def test_wrong_model_attributes_in_haml
assert_no_warning :type => :template,
:warning_code => 2,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册