brakeman 3.0.0 → 3.0.1

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.
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