brakeman 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/CHANGES CHANGED
@@ -1,3 +1,12 @@
1
+ # 3.0.1
2
+
3
+ * Avoid protect_from_forgery warning unless ApplicationController inherits from ActionController::Base
4
+ * Properly format command interpolation (again)
5
+ * Remove Slim dependency (Casey West)
6
+ * Allow for controllers/models/templates in directories under `app/` (Neal Harris)
7
+ * Add `--add-libs-path` for additional libraries (Patrick Toomey)
8
+ * Properly process libraries (Patrick Toomey)
9
+
1
10
  # 3.0.0
2
11
 
3
12
  * Add check for CVE-2014-7829
data/README.md CHANGED
@@ -40,6 +40,15 @@ From source:
40
40
  gem build brakeman.gemspec
41
41
  gem install brakeman*.gem
42
42
 
43
+ ## For Slim Users
44
+
45
+ [Slim v3.0.0](https://github.com/slim-template/slim/blob/master/CHANGES#L12) dropped support for Ruby 1.8.7. Install a version of [`slim`](http://slim-lang.com/) compatible with your Ruby.
46
+
47
+ | Ruby Version | `Gemfile` | Command Line |
48
+ |--------------|-----------------------|----------------------------------------|
49
+ | Ruby 1.8.7 | `gem 'slim', '< 3.0'` | `$ gem install slim --version '< 3.0'` |
50
+ | Ruby 1.9+ | `gem 'slim'` | `$ gem install slim` |
51
+
43
52
  # Usage
44
53
 
45
54
  brakeman [app_path]
data/lib/brakeman.rb CHANGED
@@ -17,6 +17,8 @@ module Brakeman
17
17
  #Options:
18
18
  #
19
19
  # * :app_path - path to root of Rails app (required)
20
+ # * :additional_checks_path - array of additional directories containing additional out-of-tree checks to run
21
+ # * :additional_libs_path - array of additional application relative lib directories (ex. app/mailers) to process
20
22
  # * :assume_all_routes - assume all methods are routes (default: true)
21
23
  # * :check_arguments - check arguments of methods (default: true)
22
24
  # * :collapse_mass_assignment - report unprotected models in single warning (default: false)
@@ -420,7 +422,7 @@ module Brakeman
420
422
  require name
421
423
  rescue LoadError => e
422
424
  $stderr.puts e.message
423
- $stderr.puts "Please install the appropriate dependency."
425
+ $stderr.puts "Please install the appropriate dependency: #{name}."
424
426
  exit! -1
425
427
  end
426
428
  end
@@ -15,6 +15,7 @@ module Brakeman
15
15
  if options[:only_files]
16
16
  init_options[:only_files] = Regexp.new("(?:" << options[:only_files].map { |f| Regexp.escape f }.join("|") << ")")
17
17
  end
18
+ init_options[:additional_libs_path] = options[:additional_libs_path]
18
19
  new(root, init_options)
19
20
  end
20
21
 
@@ -22,6 +23,7 @@ module Brakeman
22
23
  @root = root
23
24
  @skip_files = init_options[:skip_files]
24
25
  @only_files = init_options[:only_files]
26
+ @additional_libs_path = init_options[:additional_libs_path] || []
25
27
  end
26
28
 
27
29
  def expand_path(path)
@@ -54,15 +56,15 @@ module Brakeman
54
56
  end
55
57
 
56
58
  def controller_paths
57
- @controller_paths ||= find_paths("app/controllers")
59
+ @controller_paths ||= find_paths("app/**/controllers")
58
60
  end
59
61
 
60
62
  def model_paths
61
- @model_paths ||= find_paths("app/models")
63
+ @model_paths ||= find_paths("app/**/models")
62
64
  end
63
65
 
64
66
  def template_paths
65
- @template_paths ||= find_paths("app/views", "*.{#{VIEW_EXTENSIONS}}")
67
+ @template_paths ||= find_paths("app/**/views", "*.{#{VIEW_EXTENSIONS}}")
66
68
  end
67
69
 
68
70
  def layout_exists?(name)
@@ -71,11 +73,16 @@ module Brakeman
71
73
  end
72
74
 
73
75
  def lib_paths
74
- @lib_files ||= find_paths("lib").reject { |path| path.include? "/generators/" or path.include? "lib/tasks/" }
76
+ @lib_files ||= find_paths("lib").reject { |path| path.include? "/generators/" or path.include? "lib/tasks/" } +
77
+ find_additional_lib_paths
75
78
  end
76
79
 
77
80
  private
78
81
 
82
+ def find_additional_lib_paths
83
+ @additional_libs_path.collect{ |path| find_paths path }.flatten
84
+ end
85
+
79
86
  def find_paths(directory, extensions = "*.rb")
80
87
  pattern = @root + "/{engines/*/,}#{directory}/**/#{extensions}"
81
88
 
@@ -11,6 +11,9 @@ class Brakeman::CheckForgerySetting < Brakeman::BaseCheck
11
11
 
12
12
  def run_check
13
13
  app_controller = tracker.controllers[:ApplicationController]
14
+
15
+ return unless ancestor? app_controller, :"ActionController::Base"
16
+
14
17
  if tracker.config[:rails][:action_controller] and
15
18
  tracker.config[:rails][:action_controller][:allow_forgery_protection] == Sexp.new(:false)
16
19
 
@@ -124,6 +124,11 @@ module Brakeman::Options
124
124
  options[:skip_libs] = true
125
125
  end
126
126
 
127
+ opts.on "--add-libs-path path1,path2,etc", Array, "An application relative lib directory (ex. app/mailers) to process" do |paths|
128
+ options[:additional_libs_path] ||= Set.new
129
+ options[:additional_libs_path].merge paths
130
+ end
131
+
127
132
  opts.on "-t", "--test Check1,Check2,etc", Array, "Only run the specified checks" do |checks|
128
133
  checks.each_with_index do |s, index|
129
134
  if s[0,5] != "Check"
@@ -106,8 +106,10 @@ class Brakeman::LibraryProcessor < Brakeman::BaseProcessor
106
106
  exp.node_type = :methdef
107
107
 
108
108
  if @current_class
109
+ exp.body = process_all! exp.body
109
110
  @current_class[:public][exp.method_name] = { :src => exp, :file => @file_name }
110
111
  elsif @current_module
112
+ exp.body = process_all! exp.body
111
113
  @current_module[:public][exp.method_name] = { :src => exp, :file => @file_name }
112
114
  end
113
115
 
@@ -119,8 +121,10 @@ class Brakeman::LibraryProcessor < Brakeman::BaseProcessor
119
121
  exp.node_type = :selfdef
120
122
 
121
123
  if @current_class
124
+ exp.body = process_all! exp.body
122
125
  @current_class[:public][exp.method_name] = { :src => exp, :file => @file_name }
123
126
  elsif @current_module
127
+ exp.body = process_all! exp.body
124
128
  @current_module[:public][exp.method_name] = { :src => exp, :file => @file_name }
125
129
  end
126
130
 
@@ -43,41 +43,8 @@ class Brakeman::OutputProcessor < Ruby2Ruby
43
43
  "cookies"
44
44
  end
45
45
 
46
- def process_string_interp exp
47
- out = '"'
48
- exp.each do |e|
49
- if e.is_a? String
50
- out << e
51
- else
52
- res = process e
53
- out << res unless res == ""
54
- end
55
- end
56
- out << '"'
57
- exp.clear
58
- out
59
- end
60
-
61
- def process_string_eval exp
62
- out = "\#{#{process(exp[0])}}"
63
- exp.clear
64
- out
65
- end
66
-
67
- def process_dxstr exp
68
- out = "`"
69
- out << exp.map! do |e|
70
- if e.is_a? String
71
- e
72
- elsif string? e
73
- e[1]
74
- else
75
- "\#{#{process e}}"
76
- end
77
- end.join
78
- exp.clear
79
- out << "`"
80
- end
46
+ alias process_string_interp process_dstr
47
+ alias process_string_eval process_evstr
81
48
 
82
49
  def process_rlist exp
83
50
  out = exp.map do |e|
@@ -226,6 +193,8 @@ class Brakeman::OutputProcessor < Ruby2Ruby
226
193
  else
227
194
  raise "unknown type: #{pt.inspect}"
228
195
  end
196
+ when String then
197
+ s << pt
229
198
  else
230
199
  # HACK: raise "huh?: #{pt.inspect}" -- hitting # constants in regexps
231
200
  # do nothing for now
@@ -1,3 +1,3 @@
1
1
  module Brakeman
2
- Version = "3.0.0"
2
+ Version = "3.0.1"
3
3
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: brakeman
3
- version: !ruby/object:Gem::Version
4
- version: 3.0.0
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 3.0.1
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Justin Collins
8
9
  autorequire:
9
10
  bindir: bin
10
- cert_chain:
11
+ cert_chain:
11
12
  - |
12
13
  -----BEGIN CERTIFICATE-----
13
14
  MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQ8wDQYDVQQDDAZqdXN0
@@ -30,328 +31,295 @@ cert_chain:
30
31
  bxoxp9KNxkO+709YwLO1rYfmcGghg8WV6MYz3PSHdlgWF4KrjRFc/00hXHqVk0Sf
31
32
  mREEv2LPwHH2SgpSSab+iawnX4l6lV8XcIrmp/HSMySsPVFBeOmB0c05LpEN8w==
32
33
  -----END CERTIFICATE-----
33
- date: 2015-01-03 00:00:00.000000000 Z
34
- dependencies:
35
- - !ruby/object:Gem::Dependency
34
+
35
+ date: 2015-01-23 00:00:00 Z
36
+ dependencies:
37
+ - !ruby/object:Gem::Dependency
38
+ name: test-unit
39
+ prerelease: false
40
+ requirement: &id001 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :development
47
+ version_requirements: *id001
48
+ - !ruby/object:Gem::Dependency
36
49
  name: ruby_parser
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: 3.5.0
42
- type: :runtime
43
50
  prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
51
+ requirement: &id002 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
48
56
  version: 3.5.0
49
- - !ruby/object:Gem::Dependency
50
- name: ruby2ruby
51
- requirement: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: 2.1.1
56
57
  type: :runtime
58
+ version_requirements: *id002
59
+ - !ruby/object:Gem::Dependency
60
+ name: ruby2ruby
57
61
  prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
+ requirement: &id003 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
62
67
  version: 2.1.1
63
- - !ruby/object:Gem::Dependency
64
- name: terminal-table
65
- requirement: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '1.4'
70
68
  type: :runtime
69
+ version_requirements: *id003
70
+ - !ruby/object:Gem::Dependency
71
+ name: terminal-table
71
72
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '1.4'
77
- - !ruby/object:Gem::Dependency
78
- name: fastercsv
79
- requirement: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '1.5'
73
+ requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: "1.4"
84
79
  type: :runtime
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: fastercsv
85
83
  prerelease: false
86
- version_requirements: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: '1.5'
91
- - !ruby/object:Gem::Dependency
92
- name: highline
93
- requirement: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: 1.6.20
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: "1.5"
98
90
  type: :runtime
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ name: highline
99
94
  prerelease: false
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
95
+ requirement: &id006 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
104
100
  version: 1.6.20
105
- - !ruby/object:Gem::Dependency
106
- name: erubis
107
- requirement: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '2.6'
112
101
  type: :runtime
102
+ version_requirements: *id006
103
+ - !ruby/object:Gem::Dependency
104
+ name: erubis
113
105
  prerelease: false
114
- version_requirements: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '2.6'
119
- - !ruby/object:Gem::Dependency
120
- name: haml
121
- requirement: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: '3.0'
126
- - - "<"
127
- - !ruby/object:Gem::Version
128
- version: '5.0'
106
+ requirement: &id007 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: "2.6"
129
112
  type: :runtime
113
+ version_requirements: *id007
114
+ - !ruby/object:Gem::Dependency
115
+ name: haml
130
116
  prerelease: false
131
- version_requirements: !ruby/object:Gem::Requirement
132
- requirements:
117
+ requirement: &id008 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
133
120
  - - ">="
134
- - !ruby/object:Gem::Version
135
- version: '3.0'
136
- - - "<"
137
- - !ruby/object:Gem::Version
138
- version: '5.0'
139
- - !ruby/object:Gem::Dependency
140
- name: sass
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '3.0'
121
+ - !ruby/object:Gem::Version
122
+ version: "3.0"
123
+ - - <
124
+ - !ruby/object:Gem::Version
125
+ version: "5.0"
146
126
  type: :runtime
127
+ version_requirements: *id008
128
+ - !ruby/object:Gem::Dependency
129
+ name: sass
147
130
  prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '3.0'
153
- - !ruby/object:Gem::Dependency
154
- name: slim
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: 1.3.6
160
- - - "<"
161
- - !ruby/object:Gem::Version
162
- version: '3.0'
131
+ requirement: &id009 !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ~>
135
+ - !ruby/object:Gem::Version
136
+ version: "3.0"
163
137
  type: :runtime
164
- prerelease: false
165
- version_requirements: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: 1.3.6
170
- - - "<"
171
- - !ruby/object:Gem::Version
172
- version: '3.0'
173
- - !ruby/object:Gem::Dependency
138
+ version_requirements: *id009
139
+ - !ruby/object:Gem::Dependency
174
140
  name: multi_json
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - "~>"
178
- - !ruby/object:Gem::Version
179
- version: '1.2'
180
- type: :runtime
181
141
  prerelease: false
182
- version_requirements: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - "~>"
185
- - !ruby/object:Gem::Version
186
- version: '1.2'
187
- description: Brakeman detects security vulnerabilities in Ruby on Rails applications
188
- via static analysis.
142
+ requirement: &id010 !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ~>
146
+ - !ruby/object:Gem::Version
147
+ version: "1.2"
148
+ type: :runtime
149
+ version_requirements: *id010
150
+ description: Brakeman detects security vulnerabilities in Ruby on Rails applications via static analysis.
189
151
  email: gem@brakeman.org
190
- executables:
152
+ executables:
191
153
  - brakeman
192
154
  extensions: []
155
+
193
156
  extra_rdoc_files: []
194
- files:
157
+
158
+ files:
159
+ - bin/brakeman
195
160
  - CHANGES
161
+ - WARNING_TYPES
196
162
  - FEATURES
197
163
  - README.md
198
- - WARNING_TYPES
199
- - bin/brakeman
200
164
  - lib/brakeman.rb
165
+ - lib/ruby_parser/bm_sexp.rb
166
+ - lib/ruby_parser/bm_sexp_processor.rb
201
167
  - lib/brakeman/app_tree.rb
202
- - lib/brakeman/brakeman.rake
203
168
  - lib/brakeman/call_index.rb
204
- - lib/brakeman/checks.rb
205
- - lib/brakeman/checks/base_check.rb
206
- - lib/brakeman/checks/check_basic_auth.rb
207
- - lib/brakeman/checks/check_content_tag.rb
208
- - lib/brakeman/checks/check_create_with.rb
209
- - lib/brakeman/checks/check_cross_site_scripting.rb
210
- - lib/brakeman/checks/check_default_routes.rb
211
- - lib/brakeman/checks/check_deserialize.rb
212
- - lib/brakeman/checks/check_detailed_exceptions.rb
213
- - lib/brakeman/checks/check_digest_dos.rb
214
- - lib/brakeman/checks/check_escape_function.rb
215
- - lib/brakeman/checks/check_evaluation.rb
216
- - lib/brakeman/checks/check_execute.rb
217
- - lib/brakeman/checks/check_file_access.rb
218
- - lib/brakeman/checks/check_file_disclosure.rb
219
- - lib/brakeman/checks/check_filter_skipping.rb
220
- - lib/brakeman/checks/check_forgery_setting.rb
221
- - lib/brakeman/checks/check_header_dos.rb
222
- - lib/brakeman/checks/check_i18n_xss.rb
223
- - lib/brakeman/checks/check_jruby_xml.rb
224
- - lib/brakeman/checks/check_json_parsing.rb
225
- - lib/brakeman/checks/check_link_to.rb
226
- - lib/brakeman/checks/check_link_to_href.rb
227
- - lib/brakeman/checks/check_mail_to.rb
228
- - lib/brakeman/checks/check_mass_assignment.rb
169
+ - lib/brakeman/brakeman.rake
170
+ - lib/brakeman/scanner.rb
171
+ - lib/brakeman/options.rb
172
+ - lib/brakeman/warning_codes.rb
173
+ - lib/brakeman/differ.rb
229
174
  - lib/brakeman/checks/check_model_attr_accessible.rb
230
- - lib/brakeman/checks/check_model_attributes.rb
231
- - lib/brakeman/checks/check_model_serialize.rb
232
- - lib/brakeman/checks/check_nested_attributes.rb
233
- - lib/brakeman/checks/check_number_to_currency.rb
234
- - lib/brakeman/checks/check_quote_table_name.rb
175
+ - lib/brakeman/checks/check_i18n_xss.rb
176
+ - lib/brakeman/checks/check_digest_dos.rb
177
+ - lib/brakeman/checks/check_session_settings.rb
235
178
  - lib/brakeman/checks/check_redirect.rb
179
+ - lib/brakeman/checks/check_model_serialize.rb
236
180
  - lib/brakeman/checks/check_regex_dos.rb
237
- - lib/brakeman/checks/check_render.rb
238
- - lib/brakeman/checks/check_render_dos.rb
239
- - lib/brakeman/checks/check_render_inline.rb
240
- - lib/brakeman/checks/check_response_splitting.rb
181
+ - lib/brakeman/checks/check_validation_regex.rb
182
+ - lib/brakeman/checks/check_single_quotes.rb
183
+ - lib/brakeman/checks/check_detailed_exceptions.rb
184
+ - lib/brakeman/checks/check_file_access.rb
185
+ - lib/brakeman/checks/check_unscoped_find.rb
186
+ - lib/brakeman/checks/check_forgery_setting.rb
187
+ - lib/brakeman/checks/check_symbol_dos.rb
188
+ - lib/brakeman/checks/check_execute.rb
241
189
  - lib/brakeman/checks/check_safe_buffer_manipulation.rb
190
+ - lib/brakeman/checks/check_skip_before_filter.rb
191
+ - lib/brakeman/checks/check_default_routes.rb
192
+ - lib/brakeman/checks/check_file_disclosure.rb
193
+ - lib/brakeman/checks/check_basic_auth.rb
194
+ - lib/brakeman/checks/check_render.rb
195
+ - lib/brakeman/checks/base_check.rb
196
+ - lib/brakeman/checks/check_mass_assignment.rb
242
197
  - lib/brakeman/checks/check_sanitize_methods.rb
243
- - lib/brakeman/checks/check_select_tag.rb
198
+ - lib/brakeman/checks/check_simple_format.rb
244
199
  - lib/brakeman/checks/check_select_vulnerability.rb
245
- - lib/brakeman/checks/check_send.rb
246
200
  - lib/brakeman/checks/check_send_file.rb
247
- - lib/brakeman/checks/check_session_settings.rb
248
- - lib/brakeman/checks/check_simple_format.rb
249
- - lib/brakeman/checks/check_single_quotes.rb
250
- - lib/brakeman/checks/check_skip_before_filter.rb
251
- - lib/brakeman/checks/check_sql.rb
252
- - lib/brakeman/checks/check_sql_cves.rb
201
+ - lib/brakeman/checks/check_response_splitting.rb
253
202
  - lib/brakeman/checks/check_ssl_verify.rb
203
+ - lib/brakeman/checks/check_filter_skipping.rb
204
+ - lib/brakeman/checks/check_jruby_xml.rb
205
+ - lib/brakeman/checks/check_escape_function.rb
254
206
  - lib/brakeman/checks/check_strip_tags.rb
255
- - lib/brakeman/checks/check_symbol_dos.rb
256
- - lib/brakeman/checks/check_symbol_dos_cve.rb
207
+ - lib/brakeman/checks/check_json_parsing.rb
208
+ - lib/brakeman/checks/check_select_tag.rb
257
209
  - lib/brakeman/checks/check_translate_bug.rb
210
+ - lib/brakeman/checks/check_quote_table_name.rb
211
+ - lib/brakeman/checks/check_sql.rb
212
+ - lib/brakeman/checks/check_yaml_parsing.rb
213
+ - lib/brakeman/checks/check_render_inline.rb
214
+ - lib/brakeman/checks/check_cross_site_scripting.rb
215
+ - lib/brakeman/checks/check_link_to_href.rb
216
+ - lib/brakeman/checks/check_deserialize.rb
217
+ - lib/brakeman/checks/check_model_attributes.rb
218
+ - lib/brakeman/checks/check_number_to_currency.rb
219
+ - lib/brakeman/checks/check_content_tag.rb
220
+ - lib/brakeman/checks/check_symbol_dos_cve.rb
221
+ - lib/brakeman/checks/check_nested_attributes.rb
222
+ - lib/brakeman/checks/check_send.rb
258
223
  - lib/brakeman/checks/check_unsafe_reflection.rb
259
- - lib/brakeman/checks/check_unscoped_find.rb
260
- - lib/brakeman/checks/check_validation_regex.rb
224
+ - lib/brakeman/checks/check_evaluation.rb
225
+ - lib/brakeman/checks/check_sql_cves.rb
226
+ - lib/brakeman/checks/check_mail_to.rb
261
227
  - lib/brakeman/checks/check_without_protection.rb
262
- - lib/brakeman/checks/check_yaml_parsing.rb
263
- - lib/brakeman/differ.rb
228
+ - lib/brakeman/checks/check_create_with.rb
229
+ - lib/brakeman/checks/check_header_dos.rb
230
+ - lib/brakeman/checks/check_link_to.rb
231
+ - lib/brakeman/checks/check_render_dos.rb
232
+ - lib/brakeman/processor.rb
264
233
  - lib/brakeman/file_parser.rb
234
+ - lib/brakeman/version.rb
265
235
  - lib/brakeman/format/style.css
266
- - lib/brakeman/options.rb
267
- - lib/brakeman/parsers/rails2_erubis.rb
268
- - lib/brakeman/parsers/rails2_xss_plugin_erubis.rb
236
+ - lib/brakeman/checks.rb
237
+ - lib/brakeman/tracker.rb
269
238
  - lib/brakeman/parsers/rails3_erubis.rb
239
+ - lib/brakeman/parsers/rails2_erubis.rb
270
240
  - lib/brakeman/parsers/template_parser.rb
271
- - lib/brakeman/processor.rb
241
+ - lib/brakeman/parsers/rails2_xss_plugin_erubis.rb
242
+ - lib/brakeman/util.rb
243
+ - lib/brakeman/report.rb
244
+ - lib/brakeman/warning.rb
272
245
  - lib/brakeman/processors/alias_processor.rb
273
- - lib/brakeman/processors/base_processor.rb
246
+ - lib/brakeman/processors/output_processor.rb
247
+ - lib/brakeman/processors/template_processor.rb
248
+ - lib/brakeman/processors/erubis_template_processor.rb
249
+ - lib/brakeman/processors/erb_template_processor.rb
250
+ - lib/brakeman/processors/model_processor.rb
251
+ - lib/brakeman/processors/template_alias_processor.rb
274
252
  - lib/brakeman/processors/config_processor.rb
275
253
  - lib/brakeman/processors/controller_alias_processor.rb
276
- - lib/brakeman/processors/controller_processor.rb
277
- - lib/brakeman/processors/erb_template_processor.rb
278
- - lib/brakeman/processors/erubis_template_processor.rb
279
- - lib/brakeman/processors/gem_processor.rb
280
254
  - lib/brakeman/processors/haml_template_processor.rb
281
- - lib/brakeman/processors/lib/basic_processor.rb
282
- - lib/brakeman/processors/lib/find_all_calls.rb
283
- - lib/brakeman/processors/lib/find_call.rb
255
+ - lib/brakeman/processors/base_processor.rb
284
256
  - lib/brakeman/processors/lib/find_return_value.rb
285
- - lib/brakeman/processors/lib/processor_helper.rb
286
- - lib/brakeman/processors/lib/rails2_config_processor.rb
287
- - lib/brakeman/processors/lib/rails2_route_processor.rb
288
- - lib/brakeman/processors/lib/rails3_config_processor.rb
289
257
  - lib/brakeman/processors/lib/rails3_route_processor.rb
290
- - lib/brakeman/processors/lib/render_helper.rb
258
+ - lib/brakeman/processors/lib/find_all_calls.rb
259
+ - lib/brakeman/processors/lib/basic_processor.rb
260
+ - lib/brakeman/processors/lib/rails2_route_processor.rb
291
261
  - lib/brakeman/processors/lib/route_helper.rb
262
+ - lib/brakeman/processors/lib/find_call.rb
263
+ - lib/brakeman/processors/lib/render_helper.rb
264
+ - lib/brakeman/processors/lib/rails3_config_processor.rb
265
+ - lib/brakeman/processors/lib/rails2_config_processor.rb
266
+ - lib/brakeman/processors/lib/processor_helper.rb
267
+ - lib/brakeman/processors/controller_processor.rb
268
+ - lib/brakeman/processors/slim_template_processor.rb
292
269
  - lib/brakeman/processors/library_processor.rb
293
- - lib/brakeman/processors/model_processor.rb
294
- - lib/brakeman/processors/output_processor.rb
270
+ - lib/brakeman/processors/gem_processor.rb
295
271
  - lib/brakeman/processors/route_processor.rb
296
- - lib/brakeman/processors/slim_template_processor.rb
297
- - lib/brakeman/processors/template_alias_processor.rb
298
- - lib/brakeman/processors/template_processor.rb
299
- - lib/brakeman/report.rb
300
- - lib/brakeman/report/ignore/config.rb
301
- - lib/brakeman/report/ignore/interactive.rb
302
- - lib/brakeman/report/initializers/faster_csv.rb
303
- - lib/brakeman/report/initializers/multi_json.rb
304
- - lib/brakeman/report/renderer.rb
272
+ - lib/brakeman/report/report_markdown.rb
305
273
  - lib/brakeman/report/report_base.rb
306
- - lib/brakeman/report/report_csv.rb
307
274
  - lib/brakeman/report/report_hash.rb
308
- - lib/brakeman/report/report_html.rb
309
- - lib/brakeman/report/report_json.rb
310
- - lib/brakeman/report/report_markdown.rb
311
- - lib/brakeman/report/report_table.rb
312
- - lib/brakeman/report/report_tabs.rb
313
275
  - lib/brakeman/report/templates/controller_overview.html.erb
314
- - lib/brakeman/report/templates/controller_warnings.html.erb
315
- - lib/brakeman/report/templates/error_overview.html.erb
316
- - lib/brakeman/report/templates/header.html.erb
276
+ - lib/brakeman/report/templates/security_warnings.html.erb
277
+ - lib/brakeman/report/templates/warning_overview.html.erb
317
278
  - lib/brakeman/report/templates/ignored_warnings.html.erb
318
279
  - lib/brakeman/report/templates/model_warnings.html.erb
280
+ - lib/brakeman/report/templates/controller_warnings.html.erb
319
281
  - lib/brakeman/report/templates/overview.html.erb
320
- - lib/brakeman/report/templates/security_warnings.html.erb
321
- - lib/brakeman/report/templates/template_overview.html.erb
282
+ - lib/brakeman/report/templates/error_overview.html.erb
322
283
  - lib/brakeman/report/templates/view_warnings.html.erb
323
- - lib/brakeman/report/templates/warning_overview.html.erb
284
+ - lib/brakeman/report/templates/header.html.erb
285
+ - lib/brakeman/report/templates/template_overview.html.erb
286
+ - lib/brakeman/report/ignore/config.rb
287
+ - lib/brakeman/report/ignore/interactive.rb
288
+ - lib/brakeman/report/renderer.rb
289
+ - lib/brakeman/report/report_table.rb
290
+ - lib/brakeman/report/report_html.rb
291
+ - lib/brakeman/report/report_csv.rb
292
+ - lib/brakeman/report/report_tabs.rb
293
+ - lib/brakeman/report/initializers/faster_csv.rb
294
+ - lib/brakeman/report/initializers/multi_json.rb
295
+ - lib/brakeman/report/report_json.rb
324
296
  - lib/brakeman/rescanner.rb
325
- - lib/brakeman/scanner.rb
326
- - lib/brakeman/tracker.rb
327
- - lib/brakeman/util.rb
328
- - lib/brakeman/version.rb
329
- - lib/brakeman/warning.rb
330
- - lib/brakeman/warning_codes.rb
331
- - lib/ruby_parser/bm_sexp.rb
332
- - lib/ruby_parser/bm_sexp_processor.rb
333
297
  homepage: http://brakemanscanner.org
334
- licenses:
298
+ licenses:
335
299
  - MIT
336
- metadata: {}
337
300
  post_install_message:
338
301
  rdoc_options: []
339
- require_paths:
302
+
303
+ require_paths:
340
304
  - lib
341
- required_ruby_version: !ruby/object:Gem::Requirement
342
- requirements:
305
+ required_ruby_version: !ruby/object:Gem::Requirement
306
+ none: false
307
+ requirements:
343
308
  - - ">="
344
- - !ruby/object:Gem::Version
345
- version: '0'
346
- required_rubygems_version: !ruby/object:Gem::Requirement
347
- requirements:
309
+ - !ruby/object:Gem::Version
310
+ version: "0"
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
312
+ none: false
313
+ requirements:
348
314
  - - ">="
349
- - !ruby/object:Gem::Version
350
- version: '0'
315
+ - !ruby/object:Gem::Version
316
+ version: "0"
351
317
  requirements: []
318
+
352
319
  rubyforge_project:
353
- rubygems_version: 2.4.5
320
+ rubygems_version: 1.8.5
354
321
  signing_key:
355
- specification_version: 4
322
+ specification_version: 3
356
323
  summary: Security vulnerability scanner for Ruby on Rails.
357
324
  test_files: []
325
+
metadata.gz.sig CHANGED
Binary file
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 8e036c60e03551ca1b437c9c0ba69ba388ec0bf1
4
- data.tar.gz: 1b2cd12bd7417aa8409dc36d978d40557363c6d6
5
- SHA512:
6
- metadata.gz: cf9478f1fa9747f397f1c614ee4058f1de4b0c99dc0c444d2ac169ec0d1aa5adf895ea0e804761d148cd7779fcb2f1a9fd6bc1dec73c99beaf005aa5c45ad1c7
7
- data.tar.gz: 4b71efa6cf9e69e771d4698364d4ec2a7b19c05a1f3d24d8cd72a9e8e8bcb384143c5e06f8b7865d66bfa96ef52ae8a0dc7e302ddd7a65cdb15c8f0ffa21ee7b
checksums.yaml.gz.sig DELETED
Binary file