brakeman 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +20 -0
- data/README.md +6 -1
- data/bin/brakeman +13 -3
- data/lib/brakeman.rb +64 -7
- data/lib/brakeman/call_index.rb +6 -4
- data/lib/brakeman/checks/check_basic_auth.rb +47 -2
- data/lib/brakeman/checks/check_cross_site_scripting.rb +50 -12
- data/lib/brakeman/checks/check_execute.rb +4 -1
- data/lib/brakeman/checks/check_model_attr_accessible.rb +48 -0
- data/lib/brakeman/checks/check_sql.rb +101 -154
- data/lib/brakeman/options.rb +16 -0
- data/lib/brakeman/parsers/rails2_erubis.rb +2 -0
- data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +2 -0
- data/lib/brakeman/parsers/rails3_erubis.rb +2 -0
- data/lib/brakeman/processors/alias_processor.rb +19 -4
- data/lib/brakeman/processors/controller_alias_processor.rb +2 -3
- data/lib/brakeman/processors/gem_processor.rb +5 -4
- data/lib/brakeman/processors/lib/find_all_calls.rb +43 -16
- data/lib/brakeman/report.rb +39 -640
- data/lib/brakeman/report/ignore/config.rb +130 -0
- data/lib/brakeman/report/ignore/interactive.rb +311 -0
- data/lib/brakeman/report/renderer.rb +2 -0
- data/lib/brakeman/report/report_base.rb +279 -0
- data/lib/brakeman/report/report_csv.rb +56 -0
- data/lib/brakeman/report/report_hash.rb +22 -0
- data/lib/brakeman/report/report_html.rb +203 -0
- data/lib/brakeman/report/report_json.rb +46 -0
- data/lib/brakeman/report/report_table.rb +109 -0
- data/lib/brakeman/report/report_tabs.rb +17 -0
- data/lib/brakeman/report/templates/ignored_warnings.html.erb +21 -0
- data/lib/brakeman/report/templates/overview.html.erb +6 -0
- data/lib/brakeman/report/templates/security_warnings.html.erb +1 -1
- data/lib/brakeman/scanner.rb +14 -12
- data/lib/brakeman/tracker.rb +5 -1
- data/lib/brakeman/util.rb +2 -0
- data/lib/brakeman/version.rb +1 -1
- data/lib/ruby_parser/bm_sexp.rb +12 -1
- metadata +179 -90
- checksums.yaml +0 -7
@@ -0,0 +1,21 @@
|
|
1
|
+
<div onClick="toggle('ignored_table');"> <h2><%= warnings.length %> Ignored Warnings (click to see them)</h2 ></div>
|
2
|
+
<div>
|
3
|
+
<table style="display:none" id="ignored_table">
|
4
|
+
<tr>
|
5
|
+
<th>Confidence</th>
|
6
|
+
<th>File</th>
|
7
|
+
<th>Warning Type</th>
|
8
|
+
<th>Message</th>
|
9
|
+
<th>Note</th>
|
10
|
+
</tr>
|
11
|
+
<% warnings.each do |warning| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= warning['Confidence']%></td>
|
14
|
+
<td><%= warning['File']%></td>
|
15
|
+
<td><%= warning['Warning Type']%></td>
|
16
|
+
<td><%= warning['Message']%></td>
|
17
|
+
<td><%= warning['Note']%></td>
|
18
|
+
</tr>
|
19
|
+
<% end %>
|
20
|
+
</table>
|
21
|
+
</div>
|
@@ -24,5 +24,11 @@
|
|
24
24
|
<td>Security Warnings</td>
|
25
25
|
<td><%= warnings %> <span class='high-confidence'>(<%= warnings_summary[:high_confidence] %>)</span></td>
|
26
26
|
</tr>
|
27
|
+
<% if warnings_summary['Ignored Warnings'] %>
|
28
|
+
<tr>
|
29
|
+
<td>Ignored Warnings</td>
|
30
|
+
<td><%= ignored_warnings %></td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
27
33
|
</table>
|
28
34
|
<br>
|
data/lib/brakeman/scanner.rb
CHANGED
@@ -1,19 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
|
2
3
|
begin
|
3
4
|
require 'ruby_parser'
|
4
5
|
require 'ruby_parser/bm_sexp.rb'
|
5
6
|
require 'ruby_parser/bm_sexp_processor.rb'
|
6
|
-
|
7
|
-
require 'haml'
|
8
|
-
require 'sass'
|
9
|
-
require 'erb'
|
10
|
-
require 'erubis'
|
11
|
-
require 'slim'
|
12
7
|
require 'brakeman/processor'
|
13
8
|
require 'brakeman/app_tree'
|
14
|
-
require 'brakeman/parsers/rails2_erubis'
|
15
|
-
require 'brakeman/parsers/rails2_xss_plugin_erubis'
|
16
|
-
require 'brakeman/parsers/rails3_erubis'
|
17
9
|
rescue LoadError => e
|
18
10
|
$stderr.puts e.message
|
19
11
|
$stderr.puts "Please install the appropriate dependency."
|
@@ -33,7 +25,7 @@ class Brakeman::Scanner
|
|
33
25
|
@app_tree = Brakeman::AppTree.from_options(options)
|
34
26
|
|
35
27
|
if !@app_tree.root || !@app_tree.exists?("app")
|
36
|
-
raise NoApplication, "Please supply the path to a Rails application."
|
28
|
+
raise Brakeman::NoApplication, "Please supply the path to a Rails application."
|
37
29
|
end
|
38
30
|
|
39
31
|
if @app_tree.exists?("script/rails")
|
@@ -272,24 +264,33 @@ class Brakeman::Scanner
|
|
272
264
|
if tracker.config[:escape_html]
|
273
265
|
type = :erubis
|
274
266
|
if options[:rails3]
|
267
|
+
require 'brakeman/parsers/rails3_erubis'
|
275
268
|
src = Brakeman::Rails3Erubis.new(text).src
|
276
269
|
else
|
270
|
+
require 'brakeman/parsers/rails2_xss_plugin_erubis'
|
277
271
|
src = Brakeman::Rails2XSSPluginErubis.new(text).src
|
278
272
|
end
|
279
273
|
elsif tracker.config[:erubis]
|
274
|
+
require 'brakeman/parsers/rails2_erubis'
|
280
275
|
type = :erubis
|
281
276
|
src = Brakeman::ScannerErubis.new(text).src
|
282
277
|
else
|
278
|
+
require 'erb'
|
283
279
|
src = ERB.new(text, nil, "-").src
|
284
280
|
src.sub!(/^#.*\n/, '') if RUBY_1_9
|
285
281
|
end
|
286
282
|
|
287
283
|
parsed = parse_ruby src
|
288
284
|
elsif type == :haml
|
285
|
+
Brakeman.load_dependency 'haml'
|
286
|
+
Brakeman.load_dependency 'sass'
|
287
|
+
|
289
288
|
src = Haml::Engine.new(text,
|
290
289
|
:escape_html => !!tracker.config[:escape_html]).precompiled
|
291
290
|
parsed = parse_ruby src
|
292
291
|
elsif type == :slim
|
292
|
+
Brakeman.load_dependency 'slim'
|
293
|
+
|
293
294
|
src = Slim::Template.new(:disable_capture => true,
|
294
295
|
:generator => Temple::Generators::RailsOutputBuffer) { text }.precompiled_template
|
295
296
|
|
@@ -355,6 +356,7 @@ class Brakeman::Scanner
|
|
355
356
|
def parse_ruby input
|
356
357
|
@ruby_parser.new.parse input
|
357
358
|
end
|
358
|
-
|
359
|
-
class NoApplication < RuntimeError; end
|
360
359
|
end
|
360
|
+
|
361
|
+
# This is to allow operation without loading the Haml library
|
362
|
+
module Haml; class Error < StandardError; end; end
|
data/lib/brakeman/tracker.rb
CHANGED
@@ -10,7 +10,7 @@ class Brakeman::Tracker
|
|
10
10
|
attr_accessor :controllers, :templates, :models, :errors,
|
11
11
|
:checks, :initializers, :config, :routes, :processor, :libs,
|
12
12
|
:template_cache, :options, :filter_cache, :start_time, :end_time,
|
13
|
-
:duration
|
13
|
+
:duration, :ignored_filter
|
14
14
|
|
15
15
|
#Place holder when there should be a model, but it is not
|
16
16
|
#clear what model it will be.
|
@@ -152,6 +152,10 @@ class Brakeman::Tracker
|
|
152
152
|
Brakeman::Report.new(@app_tree, self)
|
153
153
|
end
|
154
154
|
|
155
|
+
def warnings
|
156
|
+
self.checks.all_warnings
|
157
|
+
end
|
158
|
+
|
155
159
|
def index_call_sites
|
156
160
|
finder = Brakeman::FindAllCalls.new self
|
157
161
|
|
data/lib/brakeman/util.rb
CHANGED
@@ -385,6 +385,7 @@ module Brakeman::Util
|
|
385
385
|
|
386
386
|
def truncate_table str
|
387
387
|
@terminal_width ||= if $stdin && $stdin.tty?
|
388
|
+
Brakeman.load_dependency 'highline'
|
388
389
|
::HighLine.new.terminal_size[0]
|
389
390
|
else
|
390
391
|
80
|
@@ -402,6 +403,7 @@ module Brakeman::Util
|
|
402
403
|
|
403
404
|
# rely on Terminal::Table to build the structure, extract the data out in CSV format
|
404
405
|
def table_to_csv table
|
406
|
+
Brakeman.load_dependency 'terminal-table'
|
405
407
|
output = CSV.generate_line(table.headings.cells.map{|cell| cell.to_s.strip})
|
406
408
|
table.rows.each do |row|
|
407
409
|
output << CSV.generate_line(row.cells.map{|cell| cell.to_s.strip})
|
data/lib/brakeman/version.rb
CHANGED
data/lib/ruby_parser/bm_sexp.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#of a Sexp.
|
4
4
|
class Sexp
|
5
5
|
attr_reader :paren
|
6
|
-
attr_accessor :original_line
|
6
|
+
attr_accessor :original_line, :or_depth
|
7
7
|
ASSIGNMENT_BOOL = [:gasgn, :iasgn, :lasgn, :cvdecl, :cdecl, :or, :and, :colon2]
|
8
8
|
|
9
9
|
def method_missing name, *args
|
@@ -67,6 +67,17 @@ class Sexp
|
|
67
67
|
self[0] = type
|
68
68
|
end
|
69
69
|
|
70
|
+
#Join self and exp into an :or Sexp.
|
71
|
+
#Sets or_depth.
|
72
|
+
#Used for combining "branched" values in AliasProcessor.
|
73
|
+
def combine exp, line = nil
|
74
|
+
combined = Sexp.new(:or, self, exp).line(line || -2)
|
75
|
+
|
76
|
+
combined.or_depth = [self.or_depth, exp.or_depth].compact.reduce(0, :+) + 1
|
77
|
+
|
78
|
+
combined
|
79
|
+
end
|
80
|
+
|
70
81
|
alias :node_type :sexp_type
|
71
82
|
alias :values :sexp_body # TODO: retire
|
72
83
|
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brakeman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 11
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 2.1.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Justin Collins
|
@@ -9,25 +15,37 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2013-
|
18
|
+
date: 2013-07-17 00:00:00 Z
|
13
19
|
dependencies:
|
14
20
|
- !ruby/object:Gem::Dependency
|
15
21
|
name: ruby_parser
|
16
22
|
prerelease: false
|
17
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
18
25
|
requirements:
|
19
26
|
- - ~>
|
20
27
|
- !ruby/object:Gem::Version
|
21
|
-
|
28
|
+
hash: 11
|
29
|
+
segments:
|
30
|
+
- 3
|
31
|
+
- 2
|
32
|
+
- 2
|
33
|
+
version: 3.2.2
|
22
34
|
type: :runtime
|
23
35
|
version_requirements: *id001
|
24
36
|
- !ruby/object:Gem::Dependency
|
25
37
|
name: ruby2ruby
|
26
38
|
prerelease: false
|
27
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
28
41
|
requirements:
|
29
42
|
- - ~>
|
30
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 5
|
45
|
+
segments:
|
46
|
+
- 2
|
47
|
+
- 0
|
48
|
+
- 5
|
31
49
|
version: 2.0.5
|
32
50
|
type: :runtime
|
33
51
|
version_requirements: *id002
|
@@ -35,9 +53,14 @@ dependencies:
|
|
35
53
|
name: terminal-table
|
36
54
|
prerelease: false
|
37
55
|
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
38
57
|
requirements:
|
39
58
|
- - ~>
|
40
59
|
- !ruby/object:Gem::Version
|
60
|
+
hash: 7
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 4
|
41
64
|
version: "1.4"
|
42
65
|
type: :runtime
|
43
66
|
version_requirements: *id003
|
@@ -45,9 +68,14 @@ dependencies:
|
|
45
68
|
name: fastercsv
|
46
69
|
prerelease: false
|
47
70
|
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
48
72
|
requirements:
|
49
73
|
- - ~>
|
50
74
|
- !ruby/object:Gem::Version
|
75
|
+
hash: 5
|
76
|
+
segments:
|
77
|
+
- 1
|
78
|
+
- 5
|
51
79
|
version: "1.5"
|
52
80
|
type: :runtime
|
53
81
|
version_requirements: *id004
|
@@ -55,9 +83,15 @@ dependencies:
|
|
55
83
|
name: highline
|
56
84
|
prerelease: false
|
57
85
|
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
58
87
|
requirements:
|
59
88
|
- - ~>
|
60
89
|
- !ruby/object:Gem::Version
|
90
|
+
hash: 41
|
91
|
+
segments:
|
92
|
+
- 1
|
93
|
+
- 6
|
94
|
+
- 19
|
61
95
|
version: 1.6.19
|
62
96
|
type: :runtime
|
63
97
|
version_requirements: *id005
|
@@ -65,9 +99,14 @@ dependencies:
|
|
65
99
|
name: erubis
|
66
100
|
prerelease: false
|
67
101
|
requirement: &id006 !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
68
103
|
requirements:
|
69
104
|
- - ~>
|
70
105
|
- !ruby/object:Gem::Version
|
106
|
+
hash: 15
|
107
|
+
segments:
|
108
|
+
- 2
|
109
|
+
- 6
|
71
110
|
version: "2.6"
|
72
111
|
type: :runtime
|
73
112
|
version_requirements: *id006
|
@@ -75,12 +114,21 @@ dependencies:
|
|
75
114
|
name: haml
|
76
115
|
prerelease: false
|
77
116
|
requirement: &id007 !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
78
118
|
requirements:
|
79
119
|
- - ">="
|
80
120
|
- !ruby/object:Gem::Version
|
121
|
+
hash: 7
|
122
|
+
segments:
|
123
|
+
- 3
|
124
|
+
- 0
|
81
125
|
version: "3.0"
|
82
126
|
- - <
|
83
127
|
- !ruby/object:Gem::Version
|
128
|
+
hash: 31
|
129
|
+
segments:
|
130
|
+
- 5
|
131
|
+
- 0
|
84
132
|
version: "5.0"
|
85
133
|
type: :runtime
|
86
134
|
version_requirements: *id007
|
@@ -88,9 +136,14 @@ dependencies:
|
|
88
136
|
name: sass
|
89
137
|
prerelease: false
|
90
138
|
requirement: &id008 !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
91
140
|
requirements:
|
92
141
|
- - ~>
|
93
142
|
- !ruby/object:Gem::Version
|
143
|
+
hash: 7
|
144
|
+
segments:
|
145
|
+
- 3
|
146
|
+
- 0
|
94
147
|
version: "3.0"
|
95
148
|
type: :runtime
|
96
149
|
version_requirements: *id008
|
@@ -98,19 +151,37 @@ dependencies:
|
|
98
151
|
name: slim
|
99
152
|
prerelease: false
|
100
153
|
requirement: &id009 !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
101
155
|
requirements:
|
102
|
-
- -
|
156
|
+
- - ">="
|
103
157
|
- !ruby/object:Gem::Version
|
158
|
+
hash: 23
|
159
|
+
segments:
|
160
|
+
- 1
|
161
|
+
- 3
|
162
|
+
- 6
|
104
163
|
version: 1.3.6
|
164
|
+
- - <
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
hash: 7
|
167
|
+
segments:
|
168
|
+
- 3
|
169
|
+
- 0
|
170
|
+
version: "3.0"
|
105
171
|
type: :runtime
|
106
172
|
version_requirements: *id009
|
107
173
|
- !ruby/object:Gem::Dependency
|
108
174
|
name: multi_json
|
109
175
|
prerelease: false
|
110
176
|
requirement: &id010 !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
111
178
|
requirements:
|
112
179
|
- - ~>
|
113
180
|
- !ruby/object:Gem::Version
|
181
|
+
hash: 11
|
182
|
+
segments:
|
183
|
+
- 1
|
184
|
+
- 2
|
114
185
|
version: "1.2"
|
115
186
|
type: :runtime
|
116
187
|
version_requirements: *id010
|
@@ -128,135 +199,153 @@ files:
|
|
128
199
|
- WARNING_TYPES
|
129
200
|
- FEATURES
|
130
201
|
- README.md
|
131
|
-
- lib/brakeman/
|
132
|
-
- lib/brakeman/differ.rb
|
133
|
-
- lib/brakeman/util.rb
|
202
|
+
- lib/brakeman/app_tree.rb
|
134
203
|
- lib/brakeman/brakeman.rake
|
135
204
|
- lib/brakeman/call_index.rb
|
136
|
-
- lib/brakeman/
|
137
|
-
- lib/brakeman/report/templates/controller_overview.html.erb
|
138
|
-
- lib/brakeman/report/templates/model_warnings.html.erb
|
139
|
-
- lib/brakeman/report/templates/template_overview.html.erb
|
140
|
-
- lib/brakeman/report/templates/view_warnings.html.erb
|
141
|
-
- lib/brakeman/report/templates/overview.html.erb
|
142
|
-
- lib/brakeman/report/templates/controller_warnings.html.erb
|
143
|
-
- lib/brakeman/report/templates/header.html.erb
|
144
|
-
- lib/brakeman/report/templates/error_overview.html.erb
|
145
|
-
- lib/brakeman/report/templates/security_warnings.html.erb
|
146
|
-
- lib/brakeman/report/templates/warning_overview.html.erb
|
147
|
-
- lib/brakeman/report/initializers/faster_csv.rb
|
148
|
-
- lib/brakeman/report/initializers/multi_json.rb
|
149
|
-
- lib/brakeman/tracker.rb
|
150
|
-
- lib/brakeman/report.rb
|
151
|
-
- lib/brakeman/scanner.rb
|
152
|
-
- lib/brakeman/processor.rb
|
153
|
-
- lib/brakeman/format/style.css
|
154
|
-
- lib/brakeman/warning_codes.rb
|
155
|
-
- lib/brakeman/app_tree.rb
|
156
|
-
- lib/brakeman/checks/check_select_vulnerability.rb
|
157
|
-
- lib/brakeman/checks/check_escape_function.rb
|
158
|
-
- lib/brakeman/checks/check_single_quotes.rb
|
159
|
-
- lib/brakeman/checks/check_model_serialize.rb
|
205
|
+
- lib/brakeman/checks/base_check.rb
|
160
206
|
- lib/brakeman/checks/check_basic_auth.rb
|
161
|
-
- lib/brakeman/checks/check_safe_buffer_manipulation.rb
|
162
|
-
- lib/brakeman/checks/check_forgery_setting.rb
|
163
|
-
- lib/brakeman/checks/check_session_settings.rb
|
164
|
-
- lib/brakeman/checks/check_model_attributes.rb
|
165
|
-
- lib/brakeman/checks/check_redirect.rb
|
166
|
-
- lib/brakeman/checks/check_yaml_parsing.rb
|
167
|
-
- lib/brakeman/checks/check_skip_before_filter.rb
|
168
|
-
- lib/brakeman/checks/check_response_splitting.rb
|
169
|
-
- lib/brakeman/checks/check_mail_to.rb
|
170
207
|
- lib/brakeman/checks/check_content_tag.rb
|
171
|
-
- lib/brakeman/checks/
|
172
|
-
- lib/brakeman/checks/
|
173
|
-
- lib/brakeman/checks/check_select_tag.rb
|
174
|
-
- lib/brakeman/checks/check_mass_assignment.rb
|
175
|
-
- lib/brakeman/checks/check_link_to_href.rb
|
176
|
-
- lib/brakeman/checks/check_filter_skipping.rb
|
177
|
-
- lib/brakeman/checks/check_symbol_dos.rb
|
178
|
-
- lib/brakeman/checks/check_sanitize_methods.rb
|
179
|
-
- lib/brakeman/checks/check_file_access.rb
|
208
|
+
- lib/brakeman/checks/check_cross_site_scripting.rb
|
209
|
+
- lib/brakeman/checks/check_default_routes.rb
|
180
210
|
- lib/brakeman/checks/check_deserialize.rb
|
181
|
-
- lib/brakeman/checks/base_check.rb
|
182
|
-
- lib/brakeman/checks/check_validation_regex.rb
|
183
|
-
- lib/brakeman/checks/check_evaluation.rb
|
184
211
|
- lib/brakeman/checks/check_digest_dos.rb
|
185
|
-
- lib/brakeman/checks/
|
186
|
-
- lib/brakeman/checks/
|
187
|
-
- lib/brakeman/checks/check_json_parsing.rb
|
212
|
+
- lib/brakeman/checks/check_escape_function.rb
|
213
|
+
- lib/brakeman/checks/check_evaluation.rb
|
188
214
|
- lib/brakeman/checks/check_execute.rb
|
189
|
-
- lib/brakeman/checks/
|
215
|
+
- lib/brakeman/checks/check_file_access.rb
|
216
|
+
- lib/brakeman/checks/check_filter_skipping.rb
|
217
|
+
- lib/brakeman/checks/check_forgery_setting.rb
|
190
218
|
- lib/brakeman/checks/check_jruby_xml.rb
|
191
|
-
- lib/brakeman/checks/
|
219
|
+
- lib/brakeman/checks/check_json_parsing.rb
|
192
220
|
- lib/brakeman/checks/check_link_to.rb
|
221
|
+
- lib/brakeman/checks/check_link_to_href.rb
|
222
|
+
- lib/brakeman/checks/check_mail_to.rb
|
223
|
+
- lib/brakeman/checks/check_mass_assignment.rb
|
224
|
+
- lib/brakeman/checks/check_model_attr_accessible.rb
|
225
|
+
- lib/brakeman/checks/check_model_attributes.rb
|
226
|
+
- lib/brakeman/checks/check_model_serialize.rb
|
227
|
+
- lib/brakeman/checks/check_nested_attributes.rb
|
193
228
|
- lib/brakeman/checks/check_quote_table_name.rb
|
229
|
+
- lib/brakeman/checks/check_redirect.rb
|
230
|
+
- lib/brakeman/checks/check_render.rb
|
231
|
+
- lib/brakeman/checks/check_response_splitting.rb
|
232
|
+
- lib/brakeman/checks/check_safe_buffer_manipulation.rb
|
233
|
+
- lib/brakeman/checks/check_sanitize_methods.rb
|
234
|
+
- lib/brakeman/checks/check_select_tag.rb
|
235
|
+
- lib/brakeman/checks/check_select_vulnerability.rb
|
194
236
|
- lib/brakeman/checks/check_send.rb
|
195
|
-
- lib/brakeman/checks/
|
237
|
+
- lib/brakeman/checks/check_send_file.rb
|
238
|
+
- lib/brakeman/checks/check_session_settings.rb
|
239
|
+
- lib/brakeman/checks/check_single_quotes.rb
|
240
|
+
- lib/brakeman/checks/check_skip_before_filter.rb
|
241
|
+
- lib/brakeman/checks/check_sql.rb
|
196
242
|
- lib/brakeman/checks/check_strip_tags.rb
|
197
|
-
- lib/brakeman/checks/
|
243
|
+
- lib/brakeman/checks/check_symbol_dos.rb
|
244
|
+
- lib/brakeman/checks/check_translate_bug.rb
|
245
|
+
- lib/brakeman/checks/check_unsafe_reflection.rb
|
246
|
+
- lib/brakeman/checks/check_validation_regex.rb
|
198
247
|
- lib/brakeman/checks/check_without_protection.rb
|
248
|
+
- lib/brakeman/checks/check_yaml_parsing.rb
|
199
249
|
- lib/brakeman/checks.rb
|
250
|
+
- lib/brakeman/differ.rb
|
251
|
+
- lib/brakeman/format/style.css
|
252
|
+
- lib/brakeman/options.rb
|
253
|
+
- lib/brakeman/parsers/rails2_erubis.rb
|
254
|
+
- lib/brakeman/parsers/rails2_xss_plugin_erubis.rb
|
255
|
+
- lib/brakeman/parsers/rails3_erubis.rb
|
256
|
+
- lib/brakeman/processor.rb
|
257
|
+
- lib/brakeman/processors/alias_processor.rb
|
258
|
+
- lib/brakeman/processors/base_processor.rb
|
259
|
+
- lib/brakeman/processors/config_processor.rb
|
200
260
|
- lib/brakeman/processors/controller_alias_processor.rb
|
261
|
+
- lib/brakeman/processors/controller_processor.rb
|
262
|
+
- lib/brakeman/processors/erb_template_processor.rb
|
263
|
+
- lib/brakeman/processors/erubis_template_processor.rb
|
264
|
+
- lib/brakeman/processors/gem_processor.rb
|
265
|
+
- lib/brakeman/processors/haml_template_processor.rb
|
266
|
+
- lib/brakeman/processors/lib/find_all_calls.rb
|
267
|
+
- lib/brakeman/processors/lib/find_call.rb
|
201
268
|
- lib/brakeman/processors/lib/find_return_value.rb
|
202
|
-
- lib/brakeman/processors/lib/route_helper.rb
|
203
|
-
- lib/brakeman/processors/lib/rails2_route_processor.rb
|
204
|
-
- lib/brakeman/processors/lib/render_helper.rb
|
205
|
-
- lib/brakeman/processors/lib/rails2_config_processor.rb
|
206
|
-
- lib/brakeman/processors/lib/rails3_route_processor.rb
|
207
269
|
- lib/brakeman/processors/lib/processor_helper.rb
|
270
|
+
- lib/brakeman/processors/lib/rails2_config_processor.rb
|
271
|
+
- lib/brakeman/processors/lib/rails2_route_processor.rb
|
208
272
|
- lib/brakeman/processors/lib/rails3_config_processor.rb
|
209
|
-
- lib/brakeman/processors/lib/
|
210
|
-
- lib/brakeman/processors/lib/
|
211
|
-
- lib/brakeman/processors/
|
273
|
+
- lib/brakeman/processors/lib/rails3_route_processor.rb
|
274
|
+
- lib/brakeman/processors/lib/render_helper.rb
|
275
|
+
- lib/brakeman/processors/lib/route_helper.rb
|
276
|
+
- lib/brakeman/processors/library_processor.rb
|
212
277
|
- lib/brakeman/processors/model_processor.rb
|
213
278
|
- lib/brakeman/processors/output_processor.rb
|
214
|
-
- lib/brakeman/processors/library_processor.rb
|
215
|
-
- lib/brakeman/processors/erb_template_processor.rb
|
216
|
-
- lib/brakeman/processors/template_processor.rb
|
217
|
-
- lib/brakeman/processors/alias_processor.rb
|
218
|
-
- lib/brakeman/processors/config_processor.rb
|
219
|
-
- lib/brakeman/processors/gem_processor.rb
|
220
|
-
- lib/brakeman/processors/erubis_template_processor.rb
|
221
279
|
- lib/brakeman/processors/route_processor.rb
|
222
|
-
- lib/brakeman/processors/controller_processor.rb
|
223
280
|
- lib/brakeman/processors/slim_template_processor.rb
|
224
|
-
- lib/brakeman/processors/
|
225
|
-
- lib/brakeman/processors/
|
226
|
-
- lib/brakeman/
|
227
|
-
- lib/brakeman/
|
281
|
+
- lib/brakeman/processors/template_alias_processor.rb
|
282
|
+
- lib/brakeman/processors/template_processor.rb
|
283
|
+
- lib/brakeman/report/ignore/config.rb
|
284
|
+
- lib/brakeman/report/ignore/interactive.rb
|
285
|
+
- lib/brakeman/report/initializers/faster_csv.rb
|
286
|
+
- lib/brakeman/report/initializers/multi_json.rb
|
287
|
+
- lib/brakeman/report/renderer.rb
|
288
|
+
- lib/brakeman/report/report_base.rb
|
289
|
+
- lib/brakeman/report/report_csv.rb
|
290
|
+
- lib/brakeman/report/report_hash.rb
|
291
|
+
- lib/brakeman/report/report_html.rb
|
292
|
+
- lib/brakeman/report/report_json.rb
|
293
|
+
- lib/brakeman/report/report_table.rb
|
294
|
+
- lib/brakeman/report/report_tabs.rb
|
295
|
+
- lib/brakeman/report/templates/controller_overview.html.erb
|
296
|
+
- lib/brakeman/report/templates/controller_warnings.html.erb
|
297
|
+
- lib/brakeman/report/templates/error_overview.html.erb
|
298
|
+
- lib/brakeman/report/templates/header.html.erb
|
299
|
+
- lib/brakeman/report/templates/ignored_warnings.html.erb
|
300
|
+
- lib/brakeman/report/templates/model_warnings.html.erb
|
301
|
+
- lib/brakeman/report/templates/overview.html.erb
|
302
|
+
- lib/brakeman/report/templates/security_warnings.html.erb
|
303
|
+
- lib/brakeman/report/templates/template_overview.html.erb
|
304
|
+
- lib/brakeman/report/templates/view_warnings.html.erb
|
305
|
+
- lib/brakeman/report/templates/warning_overview.html.erb
|
306
|
+
- lib/brakeman/report.rb
|
228
307
|
- lib/brakeman/rescanner.rb
|
229
|
-
- lib/brakeman/
|
230
|
-
- lib/brakeman/
|
231
|
-
- lib/brakeman/
|
308
|
+
- lib/brakeman/scanner.rb
|
309
|
+
- lib/brakeman/tracker.rb
|
310
|
+
- lib/brakeman/util.rb
|
311
|
+
- lib/brakeman/version.rb
|
312
|
+
- lib/brakeman/warning.rb
|
313
|
+
- lib/brakeman/warning_codes.rb
|
314
|
+
- lib/brakeman.rb
|
232
315
|
- lib/ruby_parser/bm_sexp.rb
|
233
316
|
- lib/ruby_parser/bm_sexp_processor.rb
|
234
|
-
- lib/brakeman.rb
|
235
317
|
homepage: http://brakemanscanner.org
|
236
318
|
licenses:
|
237
319
|
- MIT
|
238
|
-
metadata: {}
|
239
|
-
|
240
320
|
post_install_message:
|
241
321
|
rdoc_options: []
|
242
322
|
|
243
323
|
require_paths:
|
244
324
|
- lib
|
245
325
|
required_ruby_version: !ruby/object:Gem::Requirement
|
326
|
+
none: false
|
246
327
|
requirements:
|
247
|
-
-
|
248
|
-
- ">="
|
328
|
+
- - ">="
|
249
329
|
- !ruby/object:Gem::Version
|
330
|
+
hash: 3
|
331
|
+
segments:
|
332
|
+
- 0
|
250
333
|
version: "0"
|
251
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
335
|
+
none: false
|
252
336
|
requirements:
|
253
|
-
-
|
337
|
+
- - ">="
|
338
|
+
- !ruby/object:Gem::Version
|
339
|
+
hash: 3
|
340
|
+
segments:
|
341
|
+
- 0
|
342
|
+
version: "0"
|
254
343
|
requirements: []
|
255
344
|
|
256
345
|
rubyforge_project:
|
257
|
-
rubygems_version:
|
346
|
+
rubygems_version: 1.8.25
|
258
347
|
signing_key:
|
259
|
-
specification_version:
|
348
|
+
specification_version: 3
|
260
349
|
summary: Security vulnerability scanner for Ruby on Rails.
|
261
350
|
test_files: []
|
262
351
|
|