brakeman-min 0.5.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. data/CHANGES +529 -0
  2. data/README.md +74 -28
  3. data/bin/brakeman +60 -266
  4. data/lib/brakeman.rb +422 -0
  5. data/lib/brakeman/app_tree.rb +101 -0
  6. data/lib/brakeman/brakeman.rake +10 -0
  7. data/lib/brakeman/call_index.rb +215 -0
  8. data/lib/brakeman/checks.rb +180 -0
  9. data/lib/brakeman/checks/base_check.rb +538 -0
  10. data/lib/brakeman/checks/check_basic_auth.rb +89 -0
  11. data/lib/brakeman/checks/check_content_tag.rb +162 -0
  12. data/lib/brakeman/checks/check_cross_site_scripting.rb +334 -0
  13. data/lib/{checks → brakeman/checks}/check_default_routes.rb +13 -6
  14. data/lib/brakeman/checks/check_deserialize.rb +57 -0
  15. data/lib/brakeman/checks/check_digest_dos.rb +38 -0
  16. data/lib/brakeman/checks/check_escape_function.rb +21 -0
  17. data/lib/brakeman/checks/check_evaluation.rb +33 -0
  18. data/lib/brakeman/checks/check_execute.rb +98 -0
  19. data/lib/brakeman/checks/check_file_access.rb +62 -0
  20. data/lib/brakeman/checks/check_filter_skipping.rb +31 -0
  21. data/lib/brakeman/checks/check_forgery_setting.rb +54 -0
  22. data/lib/brakeman/checks/check_jruby_xml.rb +38 -0
  23. data/lib/brakeman/checks/check_json_parsing.rb +102 -0
  24. data/lib/brakeman/checks/check_link_to.rb +132 -0
  25. data/lib/brakeman/checks/check_link_to_href.rb +92 -0
  26. data/lib/{checks → brakeman/checks}/check_mail_to.rb +14 -13
  27. data/lib/brakeman/checks/check_mass_assignment.rb +143 -0
  28. data/lib/brakeman/checks/check_model_attr_accessible.rb +48 -0
  29. data/lib/brakeman/checks/check_model_attributes.rb +118 -0
  30. data/lib/brakeman/checks/check_model_serialize.rb +66 -0
  31. data/lib/{checks → brakeman/checks}/check_nested_attributes.rb +10 -6
  32. data/lib/brakeman/checks/check_quote_table_name.rb +40 -0
  33. data/lib/brakeman/checks/check_redirect.rb +177 -0
  34. data/lib/brakeman/checks/check_render.rb +62 -0
  35. data/lib/brakeman/checks/check_response_splitting.rb +21 -0
  36. data/lib/brakeman/checks/check_safe_buffer_manipulation.rb +31 -0
  37. data/lib/brakeman/checks/check_sanitize_methods.rb +54 -0
  38. data/lib/brakeman/checks/check_select_tag.rb +60 -0
  39. data/lib/brakeman/checks/check_select_vulnerability.rb +58 -0
  40. data/lib/brakeman/checks/check_send.rb +35 -0
  41. data/lib/brakeman/checks/check_send_file.rb +19 -0
  42. data/lib/brakeman/checks/check_session_settings.rb +145 -0
  43. data/lib/brakeman/checks/check_single_quotes.rb +101 -0
  44. data/lib/brakeman/checks/check_skip_before_filter.rb +62 -0
  45. data/lib/brakeman/checks/check_sql.rb +577 -0
  46. data/lib/brakeman/checks/check_strip_tags.rb +64 -0
  47. data/lib/brakeman/checks/check_symbol_dos.rb +67 -0
  48. data/lib/brakeman/checks/check_translate_bug.rb +45 -0
  49. data/lib/brakeman/checks/check_unsafe_reflection.rb +51 -0
  50. data/lib/brakeman/checks/check_validation_regex.rb +88 -0
  51. data/lib/brakeman/checks/check_without_protection.rb +64 -0
  52. data/lib/brakeman/checks/check_yaml_parsing.rb +121 -0
  53. data/lib/brakeman/differ.rb +66 -0
  54. data/lib/{format → brakeman/format}/style.css +28 -0
  55. data/lib/brakeman/options.rb +256 -0
  56. data/lib/brakeman/parsers/rails2_erubis.rb +6 -0
  57. data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +48 -0
  58. data/lib/{scanner_erubis.rb → brakeman/parsers/rails3_erubis.rb} +8 -21
  59. data/lib/brakeman/processor.rb +102 -0
  60. data/lib/brakeman/processors/alias_processor.rb +780 -0
  61. data/lib/{processors → brakeman/processors}/base_processor.rb +90 -74
  62. data/lib/brakeman/processors/config_processor.rb +14 -0
  63. data/lib/brakeman/processors/controller_alias_processor.rb +334 -0
  64. data/lib/brakeman/processors/controller_processor.rb +265 -0
  65. data/lib/{processors → brakeman/processors}/erb_template_processor.rb +21 -19
  66. data/lib/brakeman/processors/erubis_template_processor.rb +96 -0
  67. data/lib/brakeman/processors/gem_processor.rb +59 -0
  68. data/lib/{processors → brakeman/processors}/haml_template_processor.rb +26 -21
  69. data/lib/brakeman/processors/lib/find_all_calls.rb +185 -0
  70. data/lib/{processors → brakeman/processors}/lib/find_call.rb +23 -28
  71. data/lib/brakeman/processors/lib/find_return_value.rb +134 -0
  72. data/lib/brakeman/processors/lib/processor_helper.rb +82 -0
  73. data/lib/{processors/config_processor.rb → brakeman/processors/lib/rails2_config_processor.rb} +32 -35
  74. data/lib/{processors → brakeman/processors}/lib/rails2_route_processor.rb +60 -52
  75. data/lib/brakeman/processors/lib/rails3_config_processor.rb +129 -0
  76. data/lib/brakeman/processors/lib/rails3_route_processor.rb +282 -0
  77. data/lib/{processors → brakeman/processors}/lib/render_helper.rb +54 -20
  78. data/lib/brakeman/processors/lib/route_helper.rb +62 -0
  79. data/lib/{processors → brakeman/processors}/library_processor.rb +24 -17
  80. data/lib/{processors → brakeman/processors}/model_processor.rb +46 -22
  81. data/lib/{processors → brakeman/processors}/output_processor.rb +34 -40
  82. data/lib/brakeman/processors/route_processor.rb +17 -0
  83. data/lib/brakeman/processors/slim_template_processor.rb +113 -0
  84. data/lib/brakeman/processors/template_alias_processor.rb +120 -0
  85. data/lib/{processors → brakeman/processors}/template_processor.rb +10 -7
  86. data/lib/brakeman/report.rb +68 -0
  87. data/lib/brakeman/report/ignore/config.rb +130 -0
  88. data/lib/brakeman/report/ignore/interactive.rb +311 -0
  89. data/lib/brakeman/report/initializers/faster_csv.rb +7 -0
  90. data/lib/brakeman/report/initializers/multi_json.rb +29 -0
  91. data/lib/brakeman/report/renderer.rb +24 -0
  92. data/lib/brakeman/report/report_base.rb +279 -0
  93. data/lib/brakeman/report/report_csv.rb +56 -0
  94. data/lib/brakeman/report/report_hash.rb +22 -0
  95. data/lib/brakeman/report/report_html.rb +203 -0
  96. data/lib/brakeman/report/report_json.rb +46 -0
  97. data/lib/brakeman/report/report_table.rb +109 -0
  98. data/lib/brakeman/report/report_tabs.rb +17 -0
  99. data/lib/brakeman/report/templates/controller_overview.html.erb +18 -0
  100. data/lib/brakeman/report/templates/controller_warnings.html.erb +17 -0
  101. data/lib/brakeman/report/templates/error_overview.html.erb +25 -0
  102. data/lib/brakeman/report/templates/header.html.erb +44 -0
  103. data/lib/brakeman/report/templates/ignored_warnings.html.erb +21 -0
  104. data/lib/brakeman/report/templates/model_warnings.html.erb +17 -0
  105. data/lib/brakeman/report/templates/overview.html.erb +34 -0
  106. data/lib/brakeman/report/templates/security_warnings.html.erb +19 -0
  107. data/lib/brakeman/report/templates/template_overview.html.erb +17 -0
  108. data/lib/brakeman/report/templates/view_warnings.html.erb +30 -0
  109. data/lib/brakeman/report/templates/warning_overview.html.erb +13 -0
  110. data/lib/brakeman/rescanner.rb +446 -0
  111. data/lib/brakeman/scanner.rb +362 -0
  112. data/lib/brakeman/tracker.rb +296 -0
  113. data/lib/brakeman/util.rb +413 -0
  114. data/lib/brakeman/version.rb +3 -0
  115. data/lib/brakeman/warning.rb +217 -0
  116. data/lib/brakeman/warning_codes.rb +68 -0
  117. data/lib/ruby_parser/bm_sexp.rb +562 -0
  118. data/lib/ruby_parser/bm_sexp_processor.rb +230 -0
  119. metadata +152 -66
  120. data/lib/checks.rb +0 -71
  121. data/lib/checks/base_check.rb +0 -357
  122. data/lib/checks/check_cross_site_scripting.rb +0 -336
  123. data/lib/checks/check_evaluation.rb +0 -27
  124. data/lib/checks/check_execute.rb +0 -110
  125. data/lib/checks/check_file_access.rb +0 -46
  126. data/lib/checks/check_forgery_setting.rb +0 -42
  127. data/lib/checks/check_mass_assignment.rb +0 -74
  128. data/lib/checks/check_model_attributes.rb +0 -36
  129. data/lib/checks/check_redirect.rb +0 -98
  130. data/lib/checks/check_render.rb +0 -65
  131. data/lib/checks/check_send_file.rb +0 -15
  132. data/lib/checks/check_session_settings.rb +0 -79
  133. data/lib/checks/check_sql.rb +0 -146
  134. data/lib/checks/check_validation_regex.rb +0 -60
  135. data/lib/processor.rb +0 -86
  136. data/lib/processors/alias_processor.rb +0 -384
  137. data/lib/processors/controller_alias_processor.rb +0 -237
  138. data/lib/processors/controller_processor.rb +0 -202
  139. data/lib/processors/erubis_template_processor.rb +0 -85
  140. data/lib/processors/lib/find_model_call.rb +0 -39
  141. data/lib/processors/lib/processor_helper.rb +0 -36
  142. data/lib/processors/lib/rails3_route_processor.rb +0 -184
  143. data/lib/processors/lib/route_helper.rb +0 -34
  144. data/lib/processors/params_processor.rb +0 -77
  145. data/lib/processors/route_processor.rb +0 -11
  146. data/lib/processors/template_alias_processor.rb +0 -86
  147. data/lib/report.rb +0 -680
  148. data/lib/scanner.rb +0 -227
  149. data/lib/tracker.rb +0 -144
  150. data/lib/util.rb +0 -141
  151. data/lib/version.rb +0 -1
  152. data/lib/warning.rb +0 -99
@@ -0,0 +1,230 @@
1
+ ##
2
+ # SexpProcessor provides a uniform interface to process Sexps.
3
+ #
4
+ # In order to create your own SexpProcessor subclass you'll need
5
+ # to call super in the initialize method, then set any of the
6
+ # Sexp flags you want to be different from the defaults.
7
+ #
8
+ # SexpProcessor uses a Sexp's type to determine which process method
9
+ # to call in the subclass. For Sexp <code>s(:lit, 1)</code>
10
+ # SexpProcessor will call #process_lit, if it is defined.
11
+ #
12
+
13
+ class Brakeman::SexpProcessor
14
+
15
+ VERSION = 'CUSTOM'
16
+
17
+ ##
18
+ # Return a stack of contexts. Most recent node is first.
19
+
20
+ attr_reader :context
21
+
22
+ ##
23
+ # Expected result class
24
+
25
+ attr_accessor :expected
26
+
27
+ ##
28
+ # A scoped environment to make you happy.
29
+
30
+ attr_reader :env
31
+
32
+ ##
33
+ # Creates a new SexpProcessor. Use super to invoke this
34
+ # initializer from SexpProcessor subclasses, then use the
35
+ # attributes above to customize the functionality of the
36
+ # SexpProcessor
37
+
38
+ def initialize
39
+ @expected = Sexp
40
+
41
+ # we do this on an instance basis so we can subclass it for
42
+ # different processors.
43
+ @processors = {}
44
+ @context = []
45
+
46
+ public_methods.each do |name|
47
+ if name.to_s.start_with? "process_" then
48
+ @processors[name[8..-1].to_sym] = name.to_sym
49
+ end
50
+ end
51
+ end
52
+
53
+ ##
54
+ # Default Sexp processor. Invokes process_<type> methods matching
55
+ # the Sexp type given. Performs additional checks as specified by
56
+ # the initializer.
57
+
58
+ def process(exp)
59
+ return nil if exp.nil?
60
+
61
+ result = nil
62
+
63
+ type = exp.first
64
+ raise "Type should be a Symbol, not: #{exp.first.inspect} in #{exp.inspect}" unless Symbol === type
65
+
66
+ in_context type do
67
+ # now do a pass with the real processor (or generic)
68
+ meth = @processors[type]
69
+ if meth then
70
+ if $DEBUG
71
+ result = error_handler(type) do
72
+ self.send(meth, exp)
73
+ end
74
+ else
75
+ result = self.send(meth, exp)
76
+ end
77
+
78
+ else
79
+ result = self.process_default(exp)
80
+ end
81
+ end
82
+
83
+ raise SexpTypeError, "Result must be a #{@expected}, was #{result.class}:#{result.inspect}" unless @expected === result
84
+
85
+ result
86
+ end
87
+
88
+ def error_handler(type, exp=nil) # :nodoc:
89
+ begin
90
+ return yield
91
+ rescue StandardError => err
92
+ warn "#{err.class} Exception thrown while processing #{type} for sexp #{exp.inspect} #{caller.inspect}" if $DEBUG
93
+ raise
94
+ end
95
+ end
96
+
97
+ ##
98
+ # A fairly generic processor for a dummy node. Dummy nodes are used
99
+ # when your processor is doing a complicated rewrite that replaces
100
+ # the current sexp with multiple sexps.
101
+ #
102
+ # Bogus Example:
103
+ #
104
+ # def process_something(exp)
105
+ # return s(:dummy, process(exp), s(:extra, 42))
106
+ # end
107
+
108
+ def process_dummy(exp)
109
+ result = @expected.new(:dummy) rescue @expected.new
110
+
111
+ until exp.empty? do
112
+ result << self.process(exp.shift)
113
+ end
114
+
115
+ result
116
+ end
117
+
118
+ ##
119
+ # Add a scope level to the current env. Eg:
120
+ #
121
+ # def process_defn exp
122
+ # name = exp.shift
123
+ # args = process(exp.shift)
124
+ # scope do
125
+ # body = process(exp.shift)
126
+ # # ...
127
+ # end
128
+ # end
129
+ #
130
+ # env[:x] = 42
131
+ # scope do
132
+ # env[:x] # => 42
133
+ # env[:y] = 24
134
+ # end
135
+ # env[:y] # => nil
136
+
137
+ def scope &block
138
+ env.scope(&block)
139
+ end
140
+
141
+ def in_context type
142
+ self.context.unshift type
143
+
144
+ yield
145
+
146
+ self.context.shift
147
+ end
148
+
149
+ ##
150
+ # I really hate this here, but I hate subdirs in my lib dir more...
151
+ # I guess it is kinda like shaving... I'll split this out when it
152
+ # itches too much...
153
+
154
+ class Environment
155
+ def initialize
156
+ @env = []
157
+ @env.unshift({})
158
+ end
159
+
160
+ def all
161
+ @env.reverse.inject { |env, scope| env.merge scope }
162
+ end
163
+
164
+ def depth
165
+ @env.length
166
+ end
167
+
168
+ # TODO: depth_of
169
+
170
+ def [] name
171
+ hash = @env.find { |closure| closure.has_key? name }
172
+ hash[name] if hash
173
+ end
174
+
175
+ def []= name, val
176
+ hash = @env.find { |closure| closure.has_key? name } || @env.first
177
+ hash[name] = val
178
+ end
179
+
180
+ def scope
181
+ @env.unshift({})
182
+ begin
183
+ yield
184
+ ensure
185
+ @env.shift
186
+ raise "You went too far unextending env" if @env.empty?
187
+ end
188
+ end
189
+ end
190
+ end
191
+
192
+ class Object
193
+
194
+ ##
195
+ # deep_clone is the usual Marshalling hack to make a deep copy.
196
+ # It is rather slow, so use it sparingly. Helps with debugging
197
+ # SexpProcessors since you usually shift off sexps.
198
+
199
+ def deep_clone
200
+ Marshal.load(Marshal.dump(self))
201
+ end
202
+ end
203
+
204
+ ##
205
+ # SexpProcessor base exception class.
206
+
207
+ class SexpProcessorError < StandardError; end
208
+
209
+ ##
210
+ # Raised by SexpProcessor if it sees a node type listed in its
211
+ # unsupported list.
212
+
213
+ class UnsupportedNodeError < SexpProcessorError; end
214
+
215
+ ##
216
+ # Raised by SexpProcessor if it is in strict mode and sees a node for
217
+ # which there is no processor available.
218
+
219
+ class UnknownNodeError < SexpProcessorError; end
220
+
221
+ ##
222
+ # Raised by SexpProcessor if a processor did not process every node in
223
+ # a sexp and @require_empty is true.
224
+
225
+ class NotEmptyError < SexpProcessorError; end
226
+
227
+ ##
228
+ # Raised if assert_type encounters an unexpected sexp type.
229
+
230
+ class SexpTypeError < SexpProcessorError; end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brakeman-min
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 11
5
+ prerelease:
5
6
  segments:
6
- - 0
7
- - 5
8
7
  - 2
9
- version: 0.5.2
8
+ - 1
9
+ - 0
10
+ version: 2.1.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Justin Collins
@@ -14,21 +15,22 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2011-06-29 00:00:00 -07:00
18
- default_executable:
18
+ date: 2013-07-17 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: activesupport
21
+ name: ruby_parser
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
+ hash: 11
28
29
  segments:
30
+ - 3
29
31
  - 2
30
32
  - 2
31
- version: "2.2"
33
+ version: 3.2.2
32
34
  type: :runtime
33
35
  version_requirements: *id001
34
36
  - !ruby/object:Gem::Dependency
@@ -39,14 +41,30 @@ dependencies:
39
41
  requirements:
40
42
  - - ~>
41
43
  - !ruby/object:Gem::Version
44
+ hash: 5
42
45
  segments:
43
- - 1
44
46
  - 2
45
- - 4
46
- version: 1.2.4
47
+ - 0
48
+ - 5
49
+ version: 2.0.5
47
50
  type: :runtime
48
51
  version_requirements: *id002
49
- description: " Brakeman detects security vulnerabilities in Ruby on Rails applications via static analysis.\n This gem only supports tab output to minimize dependencies. It does not include erubis or haml in its dependencies.\n To use either of these, please install the required gems manually.\n"
52
+ - !ruby/object:Gem::Dependency
53
+ name: multi_json
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 11
61
+ segments:
62
+ - 1
63
+ - 2
64
+ version: "1.2"
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ 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.
50
68
  email:
51
69
  executables:
52
70
  - brakeman
@@ -56,62 +74,128 @@ extra_rdoc_files: []
56
74
 
57
75
  files:
58
76
  - bin/brakeman
77
+ - CHANGES
59
78
  - WARNING_TYPES
60
79
  - FEATURES
61
80
  - README.md
62
- - lib/warning.rb
63
- - lib/processors/params_processor.rb
64
- - lib/processors/controller_alias_processor.rb
65
- - lib/processors/base_processor.rb
66
- - lib/processors/controller_processor.rb
67
- - lib/processors/library_processor.rb
68
- - lib/processors/erb_template_processor.rb
69
- - lib/processors/haml_template_processor.rb
70
- - lib/processors/template_alias_processor.rb
71
- - lib/processors/route_processor.rb
72
- - lib/processors/model_processor.rb
73
- - lib/processors/lib/find_call.rb
74
- - lib/processors/lib/processor_helper.rb
75
- - lib/processors/lib/rails3_route_processor.rb
76
- - lib/processors/lib/route_helper.rb
77
- - lib/processors/lib/rails2_route_processor.rb
78
- - lib/processors/lib/find_model_call.rb
79
- - lib/processors/lib/render_helper.rb
80
- - lib/processors/alias_processor.rb
81
- - lib/processors/output_processor.rb
82
- - lib/processors/config_processor.rb
83
- - lib/processors/erubis_template_processor.rb
84
- - lib/processors/template_processor.rb
85
- - lib/checks/check_send_file.rb
86
- - lib/checks/check_session_settings.rb
87
- - lib/checks/check_nested_attributes.rb
88
- - lib/checks/check_sql.rb
89
- - lib/checks/check_mass_assignment.rb
90
- - lib/checks/check_cross_site_scripting.rb
91
- - lib/checks/check_model_attributes.rb
92
- - lib/checks/check_default_routes.rb
93
- - lib/checks/check_evaluation.rb
94
- - lib/checks/check_validation_regex.rb
95
- - lib/checks/check_execute.rb
96
- - lib/checks/check_mail_to.rb
97
- - lib/checks/base_check.rb
98
- - lib/checks/check_file_access.rb
99
- - lib/checks/check_redirect.rb
100
- - lib/checks/check_forgery_setting.rb
101
- - lib/checks/check_render.rb
102
- - lib/tracker.rb
103
- - lib/util.rb
104
- - lib/report.rb
105
- - lib/version.rb
106
- - lib/scanner.rb
107
- - lib/checks.rb
108
- - lib/scanner_erubis.rb
109
- - lib/processor.rb
110
- - lib/format/style.css
111
- has_rdoc: true
112
- homepage: http://github.com/presidentbeef/brakeman
113
- licenses: []
114
-
81
+ - lib/brakeman/app_tree.rb
82
+ - lib/brakeman/brakeman.rake
83
+ - lib/brakeman/call_index.rb
84
+ - lib/brakeman/checks/base_check.rb
85
+ - lib/brakeman/checks/check_basic_auth.rb
86
+ - lib/brakeman/checks/check_content_tag.rb
87
+ - lib/brakeman/checks/check_cross_site_scripting.rb
88
+ - lib/brakeman/checks/check_default_routes.rb
89
+ - lib/brakeman/checks/check_deserialize.rb
90
+ - lib/brakeman/checks/check_digest_dos.rb
91
+ - lib/brakeman/checks/check_escape_function.rb
92
+ - lib/brakeman/checks/check_evaluation.rb
93
+ - lib/brakeman/checks/check_execute.rb
94
+ - lib/brakeman/checks/check_file_access.rb
95
+ - lib/brakeman/checks/check_filter_skipping.rb
96
+ - lib/brakeman/checks/check_forgery_setting.rb
97
+ - lib/brakeman/checks/check_jruby_xml.rb
98
+ - lib/brakeman/checks/check_json_parsing.rb
99
+ - lib/brakeman/checks/check_link_to.rb
100
+ - lib/brakeman/checks/check_link_to_href.rb
101
+ - lib/brakeman/checks/check_mail_to.rb
102
+ - lib/brakeman/checks/check_mass_assignment.rb
103
+ - lib/brakeman/checks/check_model_attr_accessible.rb
104
+ - lib/brakeman/checks/check_model_attributes.rb
105
+ - lib/brakeman/checks/check_model_serialize.rb
106
+ - lib/brakeman/checks/check_nested_attributes.rb
107
+ - lib/brakeman/checks/check_quote_table_name.rb
108
+ - lib/brakeman/checks/check_redirect.rb
109
+ - lib/brakeman/checks/check_render.rb
110
+ - lib/brakeman/checks/check_response_splitting.rb
111
+ - lib/brakeman/checks/check_safe_buffer_manipulation.rb
112
+ - lib/brakeman/checks/check_sanitize_methods.rb
113
+ - lib/brakeman/checks/check_select_tag.rb
114
+ - lib/brakeman/checks/check_select_vulnerability.rb
115
+ - lib/brakeman/checks/check_send.rb
116
+ - lib/brakeman/checks/check_send_file.rb
117
+ - lib/brakeman/checks/check_session_settings.rb
118
+ - lib/brakeman/checks/check_single_quotes.rb
119
+ - lib/brakeman/checks/check_skip_before_filter.rb
120
+ - lib/brakeman/checks/check_sql.rb
121
+ - lib/brakeman/checks/check_strip_tags.rb
122
+ - lib/brakeman/checks/check_symbol_dos.rb
123
+ - lib/brakeman/checks/check_translate_bug.rb
124
+ - lib/brakeman/checks/check_unsafe_reflection.rb
125
+ - lib/brakeman/checks/check_validation_regex.rb
126
+ - lib/brakeman/checks/check_without_protection.rb
127
+ - lib/brakeman/checks/check_yaml_parsing.rb
128
+ - lib/brakeman/checks.rb
129
+ - lib/brakeman/differ.rb
130
+ - lib/brakeman/format/style.css
131
+ - lib/brakeman/options.rb
132
+ - lib/brakeman/parsers/rails2_erubis.rb
133
+ - lib/brakeman/parsers/rails2_xss_plugin_erubis.rb
134
+ - lib/brakeman/parsers/rails3_erubis.rb
135
+ - lib/brakeman/processor.rb
136
+ - lib/brakeman/processors/alias_processor.rb
137
+ - lib/brakeman/processors/base_processor.rb
138
+ - lib/brakeman/processors/config_processor.rb
139
+ - lib/brakeman/processors/controller_alias_processor.rb
140
+ - lib/brakeman/processors/controller_processor.rb
141
+ - lib/brakeman/processors/erb_template_processor.rb
142
+ - lib/brakeman/processors/erubis_template_processor.rb
143
+ - lib/brakeman/processors/gem_processor.rb
144
+ - lib/brakeman/processors/haml_template_processor.rb
145
+ - lib/brakeman/processors/lib/find_all_calls.rb
146
+ - lib/brakeman/processors/lib/find_call.rb
147
+ - lib/brakeman/processors/lib/find_return_value.rb
148
+ - lib/brakeman/processors/lib/processor_helper.rb
149
+ - lib/brakeman/processors/lib/rails2_config_processor.rb
150
+ - lib/brakeman/processors/lib/rails2_route_processor.rb
151
+ - lib/brakeman/processors/lib/rails3_config_processor.rb
152
+ - lib/brakeman/processors/lib/rails3_route_processor.rb
153
+ - lib/brakeman/processors/lib/render_helper.rb
154
+ - lib/brakeman/processors/lib/route_helper.rb
155
+ - lib/brakeman/processors/library_processor.rb
156
+ - lib/brakeman/processors/model_processor.rb
157
+ - lib/brakeman/processors/output_processor.rb
158
+ - lib/brakeman/processors/route_processor.rb
159
+ - lib/brakeman/processors/slim_template_processor.rb
160
+ - lib/brakeman/processors/template_alias_processor.rb
161
+ - lib/brakeman/processors/template_processor.rb
162
+ - lib/brakeman/report/ignore/config.rb
163
+ - lib/brakeman/report/ignore/interactive.rb
164
+ - lib/brakeman/report/initializers/faster_csv.rb
165
+ - lib/brakeman/report/initializers/multi_json.rb
166
+ - lib/brakeman/report/renderer.rb
167
+ - lib/brakeman/report/report_base.rb
168
+ - lib/brakeman/report/report_csv.rb
169
+ - lib/brakeman/report/report_hash.rb
170
+ - lib/brakeman/report/report_html.rb
171
+ - lib/brakeman/report/report_json.rb
172
+ - lib/brakeman/report/report_table.rb
173
+ - lib/brakeman/report/report_tabs.rb
174
+ - lib/brakeman/report/templates/controller_overview.html.erb
175
+ - lib/brakeman/report/templates/controller_warnings.html.erb
176
+ - lib/brakeman/report/templates/error_overview.html.erb
177
+ - lib/brakeman/report/templates/header.html.erb
178
+ - lib/brakeman/report/templates/ignored_warnings.html.erb
179
+ - lib/brakeman/report/templates/model_warnings.html.erb
180
+ - lib/brakeman/report/templates/overview.html.erb
181
+ - lib/brakeman/report/templates/security_warnings.html.erb
182
+ - lib/brakeman/report/templates/template_overview.html.erb
183
+ - lib/brakeman/report/templates/view_warnings.html.erb
184
+ - lib/brakeman/report/templates/warning_overview.html.erb
185
+ - lib/brakeman/report.rb
186
+ - lib/brakeman/rescanner.rb
187
+ - lib/brakeman/scanner.rb
188
+ - lib/brakeman/tracker.rb
189
+ - lib/brakeman/util.rb
190
+ - lib/brakeman/version.rb
191
+ - lib/brakeman/warning.rb
192
+ - lib/brakeman/warning_codes.rb
193
+ - lib/brakeman.rb
194
+ - lib/ruby_parser/bm_sexp.rb
195
+ - lib/ruby_parser/bm_sexp_processor.rb
196
+ homepage: http://brakemanscanner.org
197
+ licenses:
198
+ - MIT
115
199
  post_install_message:
116
200
  rdoc_options: []
117
201
 
@@ -122,6 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
206
  requirements:
123
207
  - - ">="
124
208
  - !ruby/object:Gem::Version
209
+ hash: 3
125
210
  segments:
126
211
  - 0
127
212
  version: "0"
@@ -130,13 +215,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
215
  requirements:
131
216
  - - ">="
132
217
  - !ruby/object:Gem::Version
218
+ hash: 3
133
219
  segments:
134
220
  - 0
135
221
  version: "0"
136
222
  requirements: []
137
223
 
138
224
  rubyforge_project:
139
- rubygems_version: 1.3.7
225
+ rubygems_version: 1.8.25
140
226
  signing_key:
141
227
  specification_version: 3
142
228
  summary: Security vulnerability scanner for Ruby on Rails.