brakeman-min 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c4d4aa1cf1d1341db5710c8848c08092f0595203
4
+ data.tar.gz: 41683fd6cffe08af21ca19e52eede92726c6d759
5
+ SHA512:
6
+ metadata.gz: 7907403a8316daf699a8eb028ac5e4bf4fd72268c1af1b5d22421eeed067bb002e63476144658af0c722d0781a37ce69f7e021e22d72246dab45efb24d8e1400
7
+ data.tar.gz: 8021326560d002192ca6ae8712c77b45745c97fb0f35c26deb77573256657a8243bf91f3b50c9fc99d54aa6520dcb2a443a33fcebb48ffc8f22656dfaf9ad748
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGES CHANGED
@@ -1,3 +1,19 @@
1
+ # 3.0.2
2
+
3
+ * Alias process methods called in class scope on models
4
+ * Treat primary_key, table_name_prefix, table_name_suffix as safe in SQL
5
+ * Fix using --compare and --add-checks-path together
6
+ * Avoid warning about mass assignment with string literals
7
+ * Only report original regex DoS locations
8
+ * Improve render path information implementation
9
+ * Report correct file for simple_format usage CVE warning
10
+ * Remove URI.escape from HTML reports with GitHub repos
11
+ * Update ruby_parser to ~> 3.6.2
12
+ * Remove formatting newlines in HAML template output
13
+ * Ignore case value in XSS checks
14
+ * Fix CSV output when there are no warnings
15
+ * Handle processing of explictly shadowed block arguments
16
+
1
17
  # 3.0.1
2
18
 
3
19
  * Avoid protect_from_forgery warning unless ApplicationController inherits from ActionController::Base
data/lib/brakeman.rb CHANGED
@@ -399,8 +399,6 @@ module Brakeman
399
399
  require 'brakeman/differ'
400
400
  raise ArgumentError.new("Comparison file doesn't exist") unless File.exists? options[:previous_results_json]
401
401
 
402
- add_external_checks options
403
-
404
402
  begin
405
403
  previous_results = MultiJson.load(File.read(options[:previous_results_json]), :symbolize_keys => true)[:warnings]
406
404
  rescue MultiJson::DecodeError
@@ -260,6 +260,19 @@ class Brakeman::CheckCrossSiteScripting < Brakeman::BaseCheck
260
260
  exp
261
261
  end
262
262
 
263
+ def process_case exp
264
+ #Ignore user input in case value
265
+ #TODO: also ignore when values
266
+
267
+ current = 2
268
+ while current < exp.length
269
+ process exp[current] if exp[current]
270
+ current += 1
271
+ end
272
+
273
+ exp
274
+ end
275
+
263
276
  def setup
264
277
  @ignore_methods = Set[:button_to, :check_box, :content_tag, :escapeHTML, :escape_once,
265
278
  :field_field, :fields_for, :h, :hidden_field,
@@ -82,6 +82,8 @@ class Brakeman::CheckMassAssignment < Brakeman::BaseCheck
82
82
  confidence = CONFIDENCE[:low]
83
83
  user_input = input.match
84
84
  end
85
+ elsif node_type? call.first_arg, :lit, :str
86
+ return
85
87
  else
86
88
  confidence = CONFIDENCE[:low]
87
89
  user_input = nil
@@ -26,7 +26,7 @@ class Brakeman::CheckRegexDoS < Brakeman::BaseCheck
26
26
 
27
27
  #Warns if regex includes user input
28
28
  def process_result result
29
- return if duplicate? result
29
+ return if duplicate? result or result[:call].original_line
30
30
  add_result result
31
31
 
32
32
  call = result[:call]
@@ -53,7 +53,6 @@ class Brakeman::CheckSimpleFormat < Brakeman::CheckCrossSiteScripting
53
53
  :warning_code => :CVE_2013_6416_call,
54
54
  :message => "Values passed to simple_format are not safe in Rails #{@tracker.config[:rails_version]}",
55
55
  :confidence => CONFIDENCE[:high],
56
- :gem_info => gemfile_or_environment,
57
56
  :link_path => "https://groups.google.com/d/msg/ruby-security-ann/5ZI1-H5OoIM/ZNq4FoR2GnIJ",
58
57
  :user_input => match.match
59
58
  end
@@ -549,7 +549,7 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
549
549
  :sanitize_sql, :sanitize_sql_array, :sanitize_sql_for_assignment,
550
550
  :sanitize_sql_for_conditions, :sanitize_sql_hash,
551
551
  :sanitize_sql_hash_for_assignment, :sanitize_sql_hash_for_conditions,
552
- :to_sql, :sanitize, :exists]
552
+ :to_sql, :sanitize, :exists, :primary_key, :table_name_prefix, :table_name_suffix]
553
553
 
554
554
  def safe_value? exp
555
555
  return true unless sexp? exp
@@ -558,7 +558,7 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
558
558
  when :str, :lit, :const, :colon2, :nil, :true, :false
559
559
  true
560
560
  when :call
561
- if exp.method == :to_s
561
+ if exp.method == :to_s or exp.method == :to_sym
562
562
  safe_value? exp.target
563
563
  else
564
564
  IGNORE_METHODS_IN_SQL.include? exp.method or
@@ -75,7 +75,7 @@ module Brakeman
75
75
  Brakeman.load_brakeman_dependency 'sass'
76
76
 
77
77
  Haml::Engine.new(text,
78
- :escape_html => !!tracker.config[:escape_html]).precompiled
78
+ :escape_html => !!tracker.config[:escape_html]).precompiled.gsub(/([^\\])\\n/, '\1')
79
79
  end
80
80
 
81
81
  def parse_slim text
@@ -179,10 +179,10 @@ class Brakeman::AliasProcessor < Brakeman::SexpProcessor
179
179
  exp.block_args.each do |e|
180
180
  #Force block arg(s) to be local
181
181
  if node_type? e, :lasgn
182
- env.current[Sexp.new(:lvar, e.lhs)] = e.rhs
182
+ env.current[Sexp.new(:lvar, e.lhs)] = Sexp.new(:lvar, e.lhs)
183
183
  elsif node_type? e, :kwarg
184
184
  env.current[Sexp.new(:lvar, e[1])] = e[2]
185
- elsif node_type? e, :masgn
185
+ elsif node_type? e, :masgn, :shadow
186
186
  e[1..-1].each do |var|
187
187
  local = Sexp.new(:lvar, var)
188
188
  env.current[local] = local
@@ -1,5 +1,6 @@
1
1
  require 'brakeman/processors/alias_processor'
2
2
  require 'brakeman/processors/lib/render_helper'
3
+ require 'brakeman/processors/lib/render_path'
3
4
  require 'brakeman/processors/lib/find_return_value'
4
5
 
5
6
  #Processes aliasing in controllers, but includes following
@@ -170,7 +171,8 @@ class Brakeman::ControllerAliasProcessor < Brakeman::AliasProcessor
170
171
 
171
172
  #Process template and add the current class and method name as called_from info
172
173
  def process_template name, args
173
- super name, args, ["#@current_class##@current_method"]
174
+ render_path = Brakeman::RenderPath.new.add_controller_render(@current_class, @current_method)
175
+ super name, args, render_path
174
176
  end
175
177
 
176
178
  #Turns a method name into a template name
@@ -0,0 +1,100 @@
1
+ module Brakeman
2
+ class RenderPath
3
+ attr_reader :path
4
+
5
+ def initialize
6
+ @path = []
7
+ end
8
+
9
+ def add_controller_render controller_name, method_name
10
+ method_name ||= ""
11
+
12
+ @path << { :type => :controller,
13
+ :class => controller_name.to_sym,
14
+ :method => method_name.to_sym }
15
+
16
+ self
17
+ end
18
+
19
+ def add_template_render template_name
20
+ @path << { :type => :template,
21
+ :name => template_name.to_sym }
22
+
23
+ self
24
+ end
25
+
26
+ def include_template? name
27
+ name = name.to_sym
28
+
29
+ @path.any? do |loc|
30
+ loc[:type] == :template and loc[:name] == name
31
+ end
32
+ end
33
+
34
+ def include_controller? klass
35
+ klass = klass.to_sym
36
+
37
+ @path.any? do |loc|
38
+ loc[:type] == :controller and loc[:class] == klass
39
+ end
40
+ end
41
+
42
+ def include_any_method? method_names
43
+ names = method_names.map(&:to_sym)
44
+
45
+ @path.any? do |loc|
46
+ loc[:type] == :controller and names.include? loc[:method]
47
+ end
48
+ end
49
+
50
+ def rendered_from_controller?
51
+ @path.any? do |loc|
52
+ loc[:type] == :controller
53
+ end
54
+ end
55
+
56
+ def each &block
57
+ @path.each &block
58
+ end
59
+
60
+ def join *args
61
+ self.to_a.join *args
62
+ end
63
+
64
+ def length
65
+ @path.length
66
+ end
67
+
68
+ def to_a
69
+ @path.map do |loc|
70
+ case loc[:type]
71
+ when :template
72
+ "Template:#{loc[:name]}"
73
+ when :controller
74
+ "#{loc[:class]}##{loc[:method]}"
75
+ end
76
+ end
77
+ end
78
+
79
+ def last
80
+ self.to_a.last
81
+ end
82
+
83
+ def to_s
84
+ self.to_a.to_s
85
+ end
86
+
87
+ def to_sym
88
+ self.to_s.to_sym
89
+ end
90
+
91
+ def to_json *args
92
+ MultiJson.dump(self.to_a)
93
+ end
94
+
95
+ def initialize_copy original
96
+ @path = original.path.dup
97
+ self
98
+ end
99
+ end
100
+ end
@@ -170,7 +170,8 @@ class Brakeman::ModelProcessor < Brakeman::BaseProcessor
170
170
  end
171
171
  end
172
172
  end
173
- ignore
173
+
174
+ exp
174
175
  else
175
176
  call = make_call target, method, process_all!(exp.args)
176
177
  call.line(exp.line)
@@ -1,6 +1,7 @@
1
1
  require 'set'
2
2
  require 'brakeman/processors/alias_processor'
3
3
  require 'brakeman/processors/lib/render_helper'
4
+ require 'brakeman/processors/lib/render_path'
4
5
  require 'brakeman/tracker'
5
6
 
6
7
  #Processes aliasing in templates.
@@ -19,14 +20,14 @@ class Brakeman::TemplateAliasProcessor < Brakeman::AliasProcessor
19
20
  #Process template
20
21
  def process_template name, args
21
22
  if @called_from
22
- unless @called_from.grep(/Template:#{name}$/).empty?
23
+ if @called_from.include_template? name
23
24
  Brakeman.debug "Skipping circular render from #{@template[:name]} to #{name}"
24
25
  return
25
26
  end
26
27
 
27
- super name, args, @called_from + ["Template:#{@template[:name]}"]
28
+ super name, args, @called_from.dup.add_template_render(@template[:name])
28
29
  else
29
- super name, args, ["Template:#{@template[:name]}"]
30
+ super name, args, Brakeman::RenderPath.new.add_template_render(@template[:name])
30
31
  end
31
32
  end
32
33
 
@@ -195,7 +195,7 @@ class Brakeman::Report::HTML < Brakeman::Report::Base
195
195
 
196
196
  if warning.file
197
197
  github_url = github_url warning.file, warning.line
198
- message.gsub!(/(near line \d+)/, "<a href='#{URI.escape github_url, /'/}' target='_blank'>\\1</a>") if github_url
198
+ message.gsub!(/(near line \d+)/, "<a href=\"#{github_url}\" target='_blank'>\\1</a>") if github_url
199
199
  end
200
200
 
201
201
  if @highlight_user_input and warning.user_input
@@ -113,7 +113,7 @@ class Brakeman::Rescanner < Brakeman::Scanner
113
113
  if controller[:files].include?(path)
114
114
  tracker.templates.each do |template_name, template|
115
115
  next unless template[:caller]
116
- unless template[:caller].grep(/^#{name}#/).empty?
116
+ if template[:caller].include_controller? name
117
117
  tracker.reset_template template_name
118
118
  end
119
119
  end
@@ -142,21 +142,18 @@ class Brakeman::Rescanner < Brakeman::Scanner
142
142
 
143
143
  rescan = Set.new
144
144
 
145
- template_matcher = /^Template:(.+)/
146
- controller_matcher = /^(.+Controller)#(.+)/
147
- template_name_matcher = /^#{template_name}\./
148
-
149
145
  #Search for processed template and process it.
150
146
  #Search for rendered versions of template and re-render (if necessary)
151
147
  tracker.templates.each do |name, template|
152
148
  if template[:file] == path or template[:file].nil?
153
- next unless template[:caller] and name.to_s.match(template_name_matcher)
149
+ next unless template[:caller] and template[:name].to_sym == template_name.to_sym
154
150
 
155
151
  template[:caller].each do |from|
156
- if from.match(template_matcher)
157
- rescan << [:template, $1.to_sym]
158
- elsif from.match(controller_matcher)
159
- rescan << [:controller, $1.to_sym, $2.to_sym]
152
+ case from[:type]
153
+ when :template
154
+ rescan << [:template, from[:name]]
155
+ when :controller
156
+ rescan << [:controller, from[:class], from[:method]]
160
157
  end
161
158
  end
162
159
  end
@@ -272,13 +269,7 @@ class Brakeman::Rescanner < Brakeman::Scanner
272
269
 
273
270
  #Remove any rendered versions, or partials rendered from it
274
271
  tracker.templates.delete_if do |name, template|
275
- if template[:file] == path
276
- true
277
- elsif template[:file].nil?
278
- name = name.to_s
279
-
280
- name.match(rendered_from_controller) or name.match(rendered_from_view)
281
- end
272
+ template[:file] == path or template[:name].to_sym == template_name.to_sym
282
273
  end
283
274
  end
284
275
 
@@ -356,8 +347,6 @@ class Brakeman::Rescanner < Brakeman::Scanner
356
347
  end
357
348
  end
358
349
 
359
- method_matcher = /##{method_names.map {|n| Regexp.escape(n.to_s)}.join('|')}$/
360
-
361
350
  to_rescan = []
362
351
 
363
352
  #Rescan controllers that mixed in library
@@ -384,7 +373,7 @@ class Brakeman::Rescanner < Brakeman::Scanner
384
373
  tracker.templates.each do |name, template|
385
374
  next unless template[:caller]
386
375
 
387
- unless template[:caller].grep(method_matcher).empty?
376
+ if template[:caller].include_any_method? method_names
388
377
  name.to_s.match /^([^.]+)/
389
378
 
390
379
  original = tracker.templates[$1.to_sym]
@@ -257,7 +257,7 @@ class Brakeman::Tracker
257
257
  def reset_templates options = { :only_rendered => false }
258
258
  if options[:only_rendered]
259
259
  @templates.delete_if do |name, template|
260
- name.to_s.include? "Controller#"
260
+ template[:caller] and template[:caller].rendered_from_controller?
261
261
  end
262
262
  else
263
263
  @templates = {}
@@ -311,11 +311,10 @@ class Brakeman::Tracker
311
311
  @controllers.each do |name, controller|
312
312
  if controller[:files].include?(path)
313
313
  controller_name = name
314
- template_matcher = /^#{name}#/
315
314
 
316
315
  #Remove templates rendered from this controller
317
316
  @templates.each do |template_name, template|
318
- if template[:caller] and not template[:caller].grep(template_matcher).empty?
317
+ if template[:caller] and template[:caller].include_controller? name
319
318
  reset_template template_name
320
319
  @call_index.remove_template_indexes template_name
321
320
  end
data/lib/brakeman/util.rb CHANGED
@@ -423,6 +423,8 @@ module Brakeman::Util
423
423
 
424
424
  # rely on Terminal::Table to build the structure, extract the data out in CSV format
425
425
  def table_to_csv table
426
+ return "" unless table
427
+
426
428
  Brakeman.load_brakeman_dependency 'terminal-table'
427
429
  output = CSV.generate_line(table.headings.cells.map{|cell| cell.to_s.strip})
428
430
  table.rows.each do |row|
@@ -1,3 +1,3 @@
1
1
  module Brakeman
2
- Version = "3.0.1"
2
+ Version = "3.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: brakeman-min
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 3.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.2
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Justin Collins
9
8
  autorequire:
10
9
  bindir: bin
11
- cert_chain:
10
+ cert_chain:
12
11
  - |
13
12
  -----BEGIN CERTIFICATE-----
14
13
  MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQ8wDQYDVQQDDAZqdXN0
@@ -31,226 +30,234 @@ cert_chain:
31
30
  bxoxp9KNxkO+709YwLO1rYfmcGghg8WV6MYz3PSHdlgWF4KrjRFc/00hXHqVk0Sf
32
31
  mREEv2LPwHH2SgpSSab+iawnX4l6lV8XcIrmp/HSMySsPVFBeOmB0c05LpEN8w==
33
32
  -----END CERTIFICATE-----
34
-
35
- date: 2015-01-23 00:00:00 Z
36
- dependencies:
37
- - !ruby/object:Gem::Dependency
33
+ date: 2015-03-09 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
38
36
  name: test-unit
39
- prerelease: false
40
- requirement: &id001 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
43
39
  - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
46
42
  type: :development
47
- version_requirements: *id001
48
- - !ruby/object:Gem::Dependency
49
- name: ruby_parser
50
43
  prerelease: false
51
- requirement: &id002 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ~>
55
- - !ruby/object:Gem::Version
56
- version: 3.5.0
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: ruby_parser
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 3.6.2
57
56
  type: :runtime
58
- version_requirements: *id002
59
- - !ruby/object:Gem::Dependency
60
- name: ruby2ruby
61
57
  prerelease: false
62
- requirement: &id003 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ~>
66
- - !ruby/object:Gem::Version
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 3.6.2
63
+ - !ruby/object:Gem::Dependency
64
+ name: ruby2ruby
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
67
69
  version: 2.1.1
68
70
  type: :runtime
69
- version_requirements: *id003
70
- - !ruby/object:Gem::Dependency
71
- name: multi_json
72
71
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ~>
77
- - !ruby/object:Gem::Version
78
- version: "1.2"
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 2.1.1
77
+ - !ruby/object:Gem::Dependency
78
+ name: multi_json
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '1.2'
79
84
  type: :runtime
80
- version_requirements: *id004
81
- description: Brakeman detects security vulnerabilities in Ruby on Rails applications via static analysis. This version of the gem only requires the minimum number of dependencies. Use the 'brakeman' gem for a full install.
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.2'
91
+ description: Brakeman detects security vulnerabilities in Ruby on Rails applications
92
+ via static analysis. This version of the gem only requires the minimum number of
93
+ dependencies. Use the 'brakeman' gem for a full install.
82
94
  email: gem@brakeman.org
83
- executables:
95
+ executables:
84
96
  - brakeman
85
97
  extensions: []
86
-
87
98
  extra_rdoc_files: []
88
-
89
- files:
90
- - bin/brakeman
99
+ files:
91
100
  - CHANGES
92
- - WARNING_TYPES
93
101
  - FEATURES
94
102
  - README.md
103
+ - WARNING_TYPES
104
+ - bin/brakeman
95
105
  - lib/brakeman.rb
96
- - lib/ruby_parser/bm_sexp.rb
97
- - lib/ruby_parser/bm_sexp_processor.rb
98
106
  - lib/brakeman/app_tree.rb
99
- - lib/brakeman/call_index.rb
100
107
  - lib/brakeman/brakeman.rake
101
- - lib/brakeman/scanner.rb
102
- - lib/brakeman/options.rb
103
- - lib/brakeman/warning_codes.rb
104
- - lib/brakeman/differ.rb
105
- - lib/brakeman/checks/check_model_attr_accessible.rb
106
- - lib/brakeman/checks/check_i18n_xss.rb
107
- - lib/brakeman/checks/check_digest_dos.rb
108
- - lib/brakeman/checks/check_session_settings.rb
109
- - lib/brakeman/checks/check_redirect.rb
110
- - lib/brakeman/checks/check_model_serialize.rb
111
- - lib/brakeman/checks/check_regex_dos.rb
112
- - lib/brakeman/checks/check_validation_regex.rb
113
- - lib/brakeman/checks/check_single_quotes.rb
108
+ - lib/brakeman/call_index.rb
109
+ - lib/brakeman/checks.rb
110
+ - lib/brakeman/checks/base_check.rb
111
+ - lib/brakeman/checks/check_basic_auth.rb
112
+ - lib/brakeman/checks/check_content_tag.rb
113
+ - lib/brakeman/checks/check_create_with.rb
114
+ - lib/brakeman/checks/check_cross_site_scripting.rb
115
+ - lib/brakeman/checks/check_default_routes.rb
116
+ - lib/brakeman/checks/check_deserialize.rb
114
117
  - lib/brakeman/checks/check_detailed_exceptions.rb
115
- - lib/brakeman/checks/check_file_access.rb
116
- - lib/brakeman/checks/check_unscoped_find.rb
117
- - lib/brakeman/checks/check_forgery_setting.rb
118
- - lib/brakeman/checks/check_symbol_dos.rb
118
+ - lib/brakeman/checks/check_digest_dos.rb
119
+ - lib/brakeman/checks/check_escape_function.rb
120
+ - lib/brakeman/checks/check_evaluation.rb
119
121
  - lib/brakeman/checks/check_execute.rb
120
- - lib/brakeman/checks/check_safe_buffer_manipulation.rb
121
- - lib/brakeman/checks/check_skip_before_filter.rb
122
- - lib/brakeman/checks/check_default_routes.rb
122
+ - lib/brakeman/checks/check_file_access.rb
123
123
  - lib/brakeman/checks/check_file_disclosure.rb
124
- - lib/brakeman/checks/check_basic_auth.rb
125
- - lib/brakeman/checks/check_render.rb
126
- - lib/brakeman/checks/base_check.rb
127
- - lib/brakeman/checks/check_mass_assignment.rb
128
- - lib/brakeman/checks/check_sanitize_methods.rb
129
- - lib/brakeman/checks/check_simple_format.rb
130
- - lib/brakeman/checks/check_select_vulnerability.rb
131
- - lib/brakeman/checks/check_send_file.rb
132
- - lib/brakeman/checks/check_response_splitting.rb
133
- - lib/brakeman/checks/check_ssl_verify.rb
134
124
  - lib/brakeman/checks/check_filter_skipping.rb
125
+ - lib/brakeman/checks/check_forgery_setting.rb
126
+ - lib/brakeman/checks/check_header_dos.rb
127
+ - lib/brakeman/checks/check_i18n_xss.rb
135
128
  - lib/brakeman/checks/check_jruby_xml.rb
136
- - lib/brakeman/checks/check_escape_function.rb
137
- - lib/brakeman/checks/check_strip_tags.rb
138
129
  - lib/brakeman/checks/check_json_parsing.rb
139
- - lib/brakeman/checks/check_select_tag.rb
140
- - lib/brakeman/checks/check_translate_bug.rb
141
- - lib/brakeman/checks/check_quote_table_name.rb
142
- - lib/brakeman/checks/check_sql.rb
143
- - lib/brakeman/checks/check_yaml_parsing.rb
144
- - lib/brakeman/checks/check_render_inline.rb
145
- - lib/brakeman/checks/check_cross_site_scripting.rb
130
+ - lib/brakeman/checks/check_link_to.rb
146
131
  - lib/brakeman/checks/check_link_to_href.rb
147
- - lib/brakeman/checks/check_deserialize.rb
132
+ - lib/brakeman/checks/check_mail_to.rb
133
+ - lib/brakeman/checks/check_mass_assignment.rb
134
+ - lib/brakeman/checks/check_model_attr_accessible.rb
148
135
  - lib/brakeman/checks/check_model_attributes.rb
149
- - lib/brakeman/checks/check_number_to_currency.rb
150
- - lib/brakeman/checks/check_content_tag.rb
151
- - lib/brakeman/checks/check_symbol_dos_cve.rb
136
+ - lib/brakeman/checks/check_model_serialize.rb
152
137
  - lib/brakeman/checks/check_nested_attributes.rb
138
+ - lib/brakeman/checks/check_number_to_currency.rb
139
+ - lib/brakeman/checks/check_quote_table_name.rb
140
+ - lib/brakeman/checks/check_redirect.rb
141
+ - lib/brakeman/checks/check_regex_dos.rb
142
+ - lib/brakeman/checks/check_render.rb
143
+ - lib/brakeman/checks/check_render_dos.rb
144
+ - lib/brakeman/checks/check_render_inline.rb
145
+ - lib/brakeman/checks/check_response_splitting.rb
146
+ - lib/brakeman/checks/check_safe_buffer_manipulation.rb
147
+ - lib/brakeman/checks/check_sanitize_methods.rb
148
+ - lib/brakeman/checks/check_select_tag.rb
149
+ - lib/brakeman/checks/check_select_vulnerability.rb
153
150
  - lib/brakeman/checks/check_send.rb
154
- - lib/brakeman/checks/check_unsafe_reflection.rb
155
- - lib/brakeman/checks/check_evaluation.rb
151
+ - lib/brakeman/checks/check_send_file.rb
152
+ - lib/brakeman/checks/check_session_settings.rb
153
+ - lib/brakeman/checks/check_simple_format.rb
154
+ - lib/brakeman/checks/check_single_quotes.rb
155
+ - lib/brakeman/checks/check_skip_before_filter.rb
156
+ - lib/brakeman/checks/check_sql.rb
156
157
  - lib/brakeman/checks/check_sql_cves.rb
157
- - lib/brakeman/checks/check_mail_to.rb
158
+ - lib/brakeman/checks/check_ssl_verify.rb
159
+ - lib/brakeman/checks/check_strip_tags.rb
160
+ - lib/brakeman/checks/check_symbol_dos.rb
161
+ - lib/brakeman/checks/check_symbol_dos_cve.rb
162
+ - lib/brakeman/checks/check_translate_bug.rb
163
+ - lib/brakeman/checks/check_unsafe_reflection.rb
164
+ - lib/brakeman/checks/check_unscoped_find.rb
165
+ - lib/brakeman/checks/check_validation_regex.rb
158
166
  - lib/brakeman/checks/check_without_protection.rb
159
- - lib/brakeman/checks/check_create_with.rb
160
- - lib/brakeman/checks/check_header_dos.rb
161
- - lib/brakeman/checks/check_link_to.rb
162
- - lib/brakeman/checks/check_render_dos.rb
163
- - lib/brakeman/processor.rb
167
+ - lib/brakeman/checks/check_yaml_parsing.rb
168
+ - lib/brakeman/differ.rb
164
169
  - lib/brakeman/file_parser.rb
165
- - lib/brakeman/version.rb
166
170
  - lib/brakeman/format/style.css
167
- - lib/brakeman/checks.rb
168
- - lib/brakeman/tracker.rb
169
- - lib/brakeman/parsers/rails3_erubis.rb
171
+ - lib/brakeman/options.rb
170
172
  - lib/brakeman/parsers/rails2_erubis.rb
171
- - lib/brakeman/parsers/template_parser.rb
172
173
  - lib/brakeman/parsers/rails2_xss_plugin_erubis.rb
173
- - lib/brakeman/util.rb
174
- - lib/brakeman/report.rb
175
- - lib/brakeman/warning.rb
174
+ - lib/brakeman/parsers/rails3_erubis.rb
175
+ - lib/brakeman/parsers/template_parser.rb
176
+ - lib/brakeman/processor.rb
176
177
  - lib/brakeman/processors/alias_processor.rb
177
- - lib/brakeman/processors/output_processor.rb
178
- - lib/brakeman/processors/template_processor.rb
179
- - lib/brakeman/processors/erubis_template_processor.rb
180
- - lib/brakeman/processors/erb_template_processor.rb
181
- - lib/brakeman/processors/model_processor.rb
182
- - lib/brakeman/processors/template_alias_processor.rb
178
+ - lib/brakeman/processors/base_processor.rb
183
179
  - lib/brakeman/processors/config_processor.rb
184
180
  - lib/brakeman/processors/controller_alias_processor.rb
181
+ - lib/brakeman/processors/controller_processor.rb
182
+ - lib/brakeman/processors/erb_template_processor.rb
183
+ - lib/brakeman/processors/erubis_template_processor.rb
184
+ - lib/brakeman/processors/gem_processor.rb
185
185
  - lib/brakeman/processors/haml_template_processor.rb
186
- - lib/brakeman/processors/base_processor.rb
187
- - lib/brakeman/processors/lib/find_return_value.rb
188
- - lib/brakeman/processors/lib/rails3_route_processor.rb
189
- - lib/brakeman/processors/lib/find_all_calls.rb
190
186
  - lib/brakeman/processors/lib/basic_processor.rb
191
- - lib/brakeman/processors/lib/rails2_route_processor.rb
192
- - lib/brakeman/processors/lib/route_helper.rb
187
+ - lib/brakeman/processors/lib/find_all_calls.rb
193
188
  - lib/brakeman/processors/lib/find_call.rb
194
- - lib/brakeman/processors/lib/render_helper.rb
195
- - lib/brakeman/processors/lib/rails3_config_processor.rb
196
- - lib/brakeman/processors/lib/rails2_config_processor.rb
189
+ - lib/brakeman/processors/lib/find_return_value.rb
197
190
  - lib/brakeman/processors/lib/processor_helper.rb
198
- - lib/brakeman/processors/controller_processor.rb
199
- - lib/brakeman/processors/slim_template_processor.rb
191
+ - lib/brakeman/processors/lib/rails2_config_processor.rb
192
+ - lib/brakeman/processors/lib/rails2_route_processor.rb
193
+ - lib/brakeman/processors/lib/rails3_config_processor.rb
194
+ - lib/brakeman/processors/lib/rails3_route_processor.rb
195
+ - lib/brakeman/processors/lib/render_helper.rb
196
+ - lib/brakeman/processors/lib/render_path.rb
197
+ - lib/brakeman/processors/lib/route_helper.rb
200
198
  - lib/brakeman/processors/library_processor.rb
201
- - lib/brakeman/processors/gem_processor.rb
199
+ - lib/brakeman/processors/model_processor.rb
200
+ - lib/brakeman/processors/output_processor.rb
202
201
  - lib/brakeman/processors/route_processor.rb
203
- - lib/brakeman/report/report_markdown.rb
202
+ - lib/brakeman/processors/slim_template_processor.rb
203
+ - lib/brakeman/processors/template_alias_processor.rb
204
+ - lib/brakeman/processors/template_processor.rb
205
+ - lib/brakeman/report.rb
206
+ - lib/brakeman/report/ignore/config.rb
207
+ - lib/brakeman/report/ignore/interactive.rb
208
+ - lib/brakeman/report/initializers/faster_csv.rb
209
+ - lib/brakeman/report/initializers/multi_json.rb
210
+ - lib/brakeman/report/renderer.rb
204
211
  - lib/brakeman/report/report_base.rb
212
+ - lib/brakeman/report/report_csv.rb
205
213
  - lib/brakeman/report/report_hash.rb
214
+ - lib/brakeman/report/report_html.rb
215
+ - lib/brakeman/report/report_json.rb
216
+ - lib/brakeman/report/report_markdown.rb
217
+ - lib/brakeman/report/report_table.rb
218
+ - lib/brakeman/report/report_tabs.rb
206
219
  - lib/brakeman/report/templates/controller_overview.html.erb
207
- - lib/brakeman/report/templates/security_warnings.html.erb
208
- - lib/brakeman/report/templates/warning_overview.html.erb
209
- - lib/brakeman/report/templates/ignored_warnings.html.erb
210
- - lib/brakeman/report/templates/model_warnings.html.erb
211
220
  - lib/brakeman/report/templates/controller_warnings.html.erb
212
- - lib/brakeman/report/templates/overview.html.erb
213
221
  - lib/brakeman/report/templates/error_overview.html.erb
214
- - lib/brakeman/report/templates/view_warnings.html.erb
215
222
  - lib/brakeman/report/templates/header.html.erb
223
+ - lib/brakeman/report/templates/ignored_warnings.html.erb
224
+ - lib/brakeman/report/templates/model_warnings.html.erb
225
+ - lib/brakeman/report/templates/overview.html.erb
226
+ - lib/brakeman/report/templates/security_warnings.html.erb
216
227
  - lib/brakeman/report/templates/template_overview.html.erb
217
- - lib/brakeman/report/ignore/config.rb
218
- - lib/brakeman/report/ignore/interactive.rb
219
- - lib/brakeman/report/renderer.rb
220
- - lib/brakeman/report/report_table.rb
221
- - lib/brakeman/report/report_html.rb
222
- - lib/brakeman/report/report_csv.rb
223
- - lib/brakeman/report/report_tabs.rb
224
- - lib/brakeman/report/initializers/faster_csv.rb
225
- - lib/brakeman/report/initializers/multi_json.rb
226
- - lib/brakeman/report/report_json.rb
228
+ - lib/brakeman/report/templates/view_warnings.html.erb
229
+ - lib/brakeman/report/templates/warning_overview.html.erb
227
230
  - lib/brakeman/rescanner.rb
231
+ - lib/brakeman/scanner.rb
232
+ - lib/brakeman/tracker.rb
233
+ - lib/brakeman/util.rb
234
+ - lib/brakeman/version.rb
235
+ - lib/brakeman/warning.rb
236
+ - lib/brakeman/warning_codes.rb
237
+ - lib/ruby_parser/bm_sexp.rb
238
+ - lib/ruby_parser/bm_sexp_processor.rb
228
239
  homepage: http://brakemanscanner.org
229
- licenses:
240
+ licenses:
230
241
  - MIT
242
+ metadata: {}
231
243
  post_install_message:
232
244
  rdoc_options: []
233
-
234
- require_paths:
245
+ require_paths:
235
246
  - lib
236
- required_ruby_version: !ruby/object:Gem::Requirement
237
- none: false
238
- requirements:
247
+ required_ruby_version: !ruby/object:Gem::Requirement
248
+ requirements:
239
249
  - - ">="
240
- - !ruby/object:Gem::Version
241
- version: "0"
242
- required_rubygems_version: !ruby/object:Gem::Requirement
243
- none: false
244
- requirements:
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ required_rubygems_version: !ruby/object:Gem::Requirement
253
+ requirements:
245
254
  - - ">="
246
- - !ruby/object:Gem::Version
247
- version: "0"
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
248
257
  requirements: []
249
-
250
258
  rubyforge_project:
251
- rubygems_version: 1.8.5
259
+ rubygems_version: 2.2.2
252
260
  signing_key:
253
- specification_version: 3
261
+ specification_version: 4
254
262
  summary: Security vulnerability scanner for Ruby on Rails.
255
263
  test_files: []
256
-
metadata.gz.sig CHANGED
Binary file