sqreen 1.18.2-java → 1.18.3-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/LICENSE +3 -0
  4. data/lib/sqreen/actions.rb +11 -337
  5. data/lib/sqreen/actions/base.rb +110 -0
  6. data/lib/sqreen/actions/block_ip.rb +32 -0
  7. data/lib/sqreen/actions/block_user.rb +44 -0
  8. data/lib/sqreen/actions/ip_range_indexed_action_class.rb +36 -0
  9. data/lib/sqreen/actions/ip_ranges_index.rb +36 -0
  10. data/lib/sqreen/actions/redirect_ip.rb +40 -0
  11. data/lib/sqreen/actions/redirect_user.rb +45 -0
  12. data/lib/sqreen/actions/repository.rb +24 -0
  13. data/lib/sqreen/actions/unknown_action_type.rb +16 -0
  14. data/lib/sqreen/actions/user_action_class.rb +41 -0
  15. data/lib/sqreen/agent.rb +4 -1
  16. data/lib/sqreen/attack_blocked.rb +17 -0
  17. data/lib/sqreen/binding_accessor.rb +9 -102
  18. data/lib/sqreen/binding_accessor/path_elem.rb +8 -0
  19. data/lib/sqreen/binding_accessor/transforms.rb +107 -0
  20. data/lib/sqreen/capped_queue.rb +2 -0
  21. data/lib/sqreen/{callbacks.rb → cb.rb} +1 -53
  22. data/lib/sqreen/{callback_tree.rb → cb_tree.rb} +2 -2
  23. data/lib/sqreen/condition_evaluator.rb +22 -5
  24. data/lib/sqreen/configuration.rb +5 -0
  25. data/lib/sqreen/default_cb.rb +20 -0
  26. data/lib/sqreen/deferred_logger.rb +63 -0
  27. data/lib/sqreen/deliveries.rb +10 -0
  28. data/lib/sqreen/deliveries/batch.rb +7 -1
  29. data/lib/sqreen/deliveries/simple.rb +5 -0
  30. data/lib/sqreen/dependency/detector.rb +1 -1
  31. data/lib/sqreen/dependency/libsqreen.rb +28 -0
  32. data/lib/sqreen/dependency/rails.rb +4 -0
  33. data/lib/sqreen/dependency/sinatra.rb +47 -14
  34. data/lib/sqreen/error_handling_middleware.rb +30 -0
  35. data/lib/sqreen/event.rb +2 -0
  36. data/lib/sqreen/events/attack.rb +2 -0
  37. data/lib/sqreen/events/request_record.rb +11 -56
  38. data/lib/sqreen/exception.rb +9 -40
  39. data/lib/sqreen/formatter_with_tid.rb +45 -0
  40. data/lib/sqreen/framework_cb.rb +28 -0
  41. data/lib/sqreen/frameworks.rb +7 -0
  42. data/lib/sqreen/frameworks/generic.rb +20 -2
  43. data/lib/sqreen/frameworks/rails.rb +2 -0
  44. data/lib/sqreen/frameworks/request_recorder.rb +3 -0
  45. data/lib/sqreen/frameworks/sinatra.rb +2 -0
  46. data/lib/sqreen/frameworks/sqreen_test.rb +2 -0
  47. data/lib/sqreen/instrumentation.rb +5 -5
  48. data/lib/sqreen/invalid_signature_exception.rb +8 -0
  49. data/lib/{sqreen-alt.rb → sqreen/js.rb} +6 -1
  50. data/lib/sqreen/js/call_context.rb +10 -0
  51. data/lib/sqreen/js/context_pool.rb +60 -0
  52. data/lib/sqreen/js/exec_js_runnable.rb +20 -0
  53. data/lib/sqreen/js/execjs_adapter.rb +6 -47
  54. data/lib/sqreen/js/executable_js.rb +12 -0
  55. data/lib/sqreen/js/js_service.rb +2 -22
  56. data/lib/sqreen/js/js_service_adapter.rb +18 -0
  57. data/lib/sqreen/js/mini_racer_adapter.rb +6 -180
  58. data/lib/sqreen/js/mini_racer_executable_js.rb +142 -0
  59. data/lib/sqreen/js/thread_local_exec_js_runnable.rb +47 -0
  60. data/lib/sqreen/log.rb +8 -188
  61. data/lib/sqreen/logger.rb +83 -0
  62. data/lib/sqreen/metrics_store.rb +3 -11
  63. data/lib/sqreen/metrics_store/already_registered_metric.rb +11 -0
  64. data/lib/sqreen/metrics_store/unknown_metric.rb +11 -0
  65. data/lib/sqreen/metrics_store/unregistered_metric.rb +11 -0
  66. data/lib/sqreen/middleware.rb +0 -34
  67. data/lib/sqreen/mono_time.rb +2 -0
  68. data/lib/sqreen/node.rb +44 -0
  69. data/lib/sqreen/not_implemented_yet.rb +8 -0
  70. data/lib/sqreen/null_logger.rb +24 -0
  71. data/lib/sqreen/payload_creator.rb +2 -19
  72. data/lib/sqreen/payload_creator/header_section.rb +28 -0
  73. data/lib/sqreen/prefix.rb +33 -0
  74. data/lib/sqreen/rails_middleware.rb +14 -0
  75. data/lib/sqreen/remote_command.rb +1 -8
  76. data/lib/sqreen/remote_command/failure_output.rb +11 -0
  77. data/lib/sqreen/rules.rb +32 -2
  78. data/lib/sqreen/{rule_attributes.rb → rules/attrs.rb} +0 -0
  79. data/lib/sqreen/{rules_callbacks/sdk_auth_track.rb → rules/auth_track_cb.rb} +2 -2
  80. data/lib/sqreen/{rules_callbacks/binding_accessor_matcher.rb → rules/binding_accessor_matcher_cb.rb} +4 -8
  81. data/lib/sqreen/{rules_callbacks → rules}/binding_accessor_metrics.rb +1 -1
  82. data/lib/sqreen/{rules_callbacks/blacklist_ips.rb → rules/blacklist_ips_cb.rb} +3 -2
  83. data/lib/sqreen/{rules_callbacks → rules}/count_http_codes.rb +2 -2
  84. data/lib/sqreen/{rules_callbacks/crawler_user_agent_matches.rb → rules/crawler_user_agent_matches_cb.rb} +1 -1
  85. data/lib/sqreen/{rules_callbacks/crawler_user_agent_matches_metrics.rb → rules/crawler_user_agent_matches_metrics_cb.rb} +1 -1
  86. data/lib/sqreen/{rules_callbacks/custom_error.rb → rules/custom_error_cb.rb} +1 -1
  87. data/lib/sqreen/{rules_callbacks/devise_auth_track.rb → rules/devise_auth_track_cb.rb} +2 -2
  88. data/lib/sqreen/{rules_callbacks/devise_signup_track.rb → rules/devise_signup_track_cb.rb} +2 -2
  89. data/lib/sqreen/{rules_callbacks/execjs.rb → rules/execjs_cb.rb} +49 -50
  90. data/lib/sqreen/{rules_callbacks/headers_insert.rb → rules/headers_insert_cb.rb} +1 -1
  91. data/lib/sqreen/{rules_callbacks → rules}/matcher_rule.rb +2 -2
  92. data/lib/sqreen/{rules_callbacks/not_found.rb → rules/not_found_cb.rb} +2 -2
  93. data/lib/sqreen/{rules_callbacks/rails_parameters.rb → rules/rails_parameters_cb.rb} +1 -1
  94. data/lib/sqreen/{rules_callbacks → rules}/record_request_context.rb +1 -1
  95. data/lib/sqreen/{rules_callbacks/regexp_rule.rb → rules/regexp_rule_cb.rb} +1 -1
  96. data/lib/sqreen/{rule_callback.rb → rules/rule_cb.rb} +2 -2
  97. data/lib/sqreen/{rules_callbacks → rules}/run_req_start_actions.rb +4 -2
  98. data/lib/sqreen/{rules_callbacks → rules}/run_user_actions.rb +1 -1
  99. data/lib/sqreen/{rules_callbacks/shell_env.rb → rules/shell_env_cb.rb} +1 -1
  100. data/lib/sqreen/{rules_callbacks/sdk_signup_track.rb → rules/signup_track_cb.rb} +2 -2
  101. data/lib/sqreen/rules/update_request_context.rb +20 -0
  102. data/lib/sqreen/{rules_callbacks/url_matches.rb → rules/url_matches_cb.rb} +1 -1
  103. data/lib/sqreen/{rules_callbacks/user_agent_matches.rb → rules/user_agent_matches_cb.rb} +1 -1
  104. data/lib/sqreen/{rules_callbacks/waf.rb → rules/waf_cb.rb} +10 -14
  105. data/lib/sqreen/{rules_callbacks/reflected_xss.rb → rules/xss_cb.rb} +10 -7
  106. data/lib/sqreen/run_when_called_cb.rb +21 -0
  107. data/lib/sqreen/runtime_infos.rb +2 -9
  108. data/lib/sqreen/sensitive_data_redactor.rb +111 -0
  109. data/lib/sqreen/signature_verifier.rb +20 -0
  110. data/lib/sqreen/sinatra_middleware.rb +14 -0
  111. data/lib/sqreen/{rules_signature.rb → sqreen_signed_verifier.rb} +5 -17
  112. data/lib/sqreen/token_invalid_exception.rb +8 -0
  113. data/lib/sqreen/token_not_found_exception.rb +9 -0
  114. data/lib/sqreen/trie.rb +3 -64
  115. data/lib/sqreen/unauthorized.rb +8 -0
  116. data/lib/sqreen/util.rb +2 -0
  117. data/lib/sqreen/util/capped_array.rb +33 -0
  118. data/lib/sqreen/util/capped_hash.rb +39 -0
  119. data/lib/sqreen/util/capped_string.rb +24 -0
  120. data/lib/sqreen/util/capper.rb +65 -0
  121. data/lib/sqreen/version.rb +1 -1
  122. data/lib/sqreen/waf_error.rb +18 -0
  123. metadata +87 -35
  124. data/lib/sqreen/rules_callbacks.rb +0 -35
  125. data/lib/sqreen/rules_callbacks/inspect_rule.rb +0 -25
@@ -0,0 +1,39 @@
1
+ # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
+ # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
+
4
+ require 'sqreen/util'
5
+
6
+ class Sqreen::Util::CappedHash < Hash
7
+ attr_reader :size_cap, :depth_cap
8
+
9
+ def initialize(*args, &block)
10
+ opts = args.last.is_a?(Hash) ? args.pop : {}
11
+ size_cap = opts[:size_cap] || 150
12
+ depth_cap = opts[:depth_cap] || 10
13
+ @size_cap = size_cap
14
+ @depth_cap = depth_cap
15
+
16
+ super(*args, &block)
17
+ end
18
+
19
+ def []=(key, value)
20
+ super if key?(key) || keep?(value)
21
+ end
22
+ alias_method :store, :[]=
23
+
24
+ def merge!(h)
25
+ h.each { |k, v| self[k] = block_given? ? yield(k, self[k], v) : v }
26
+ end
27
+ alias_method :update, :merge!
28
+
29
+ def replace(h)
30
+ keep_if { false }
31
+ merge!(h)
32
+ end
33
+
34
+ private
35
+
36
+ def keep?(value)
37
+ size < size_cap && (depth_cap > 0 || !value.is_a?(Hash) && !value.is_a?(Array))
38
+ end
39
+ end
@@ -0,0 +1,24 @@
1
+ # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
+ # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
+
4
+ require 'sqreen/util'
5
+
6
+ class Sqreen::Util::CappedString < String
7
+ attr_reader :size_cap
8
+
9
+ def initialize(*args, &block)
10
+ opts = args.last.is_a?(Hash) ? args.pop : {}
11
+ size_cap = opts[:size_cap] || 4096
12
+ @size_cap = size_cap
13
+ super(*args, &block)
14
+ end
15
+
16
+ def <<(value)
17
+ return self unless size < size_cap
18
+
19
+ value = value[0, size_cap - size] if size + value.size > size_cap
20
+
21
+ super(value)
22
+ end
23
+ alias_method :concat, :<<
24
+ end
@@ -0,0 +1,65 @@
1
+ # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
+ # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
+
4
+ require 'sqreen/util'
5
+ require 'sqreen/util/capped_hash'
6
+ require 'sqreen/util/capped_string'
7
+ require 'sqreen/util/capped_array'
8
+
9
+ class Sqreen::Util::Capper
10
+ attr_reader :string_size_cap, :size_cap, :depth_cap
11
+
12
+ def initialize(opts = {})
13
+ string_size_cap = opts[:string_size_cap] || 4096
14
+ size_cap = opts[:size_cap] || 150
15
+ depth_cap = opts[:depth_cap] || 10
16
+ flat_size_cap = opts[:flat_size_cap] || 10000
17
+
18
+ @string_size_cap = string_size_cap
19
+ @size_cap = size_cap
20
+ @depth_cap = depth_cap
21
+ @flat_size_cap = flat_size_cap
22
+ end
23
+
24
+ def call(e)
25
+ r_call(e).first
26
+ end
27
+
28
+ private
29
+
30
+ def r_call(e, opts = {})
31
+ size = opts[:size] || @flat_size_cap
32
+ depth = opts[:depth] || @depth_cap
33
+
34
+ case e
35
+ when Hash
36
+ h = Sqreen::Util::CappedHash.new(size_cap: size_cap, depth_cap: depth)
37
+ e.each do |k, v|
38
+ break unless size > 0
39
+ k_capped, = r_call(k, size: size, depth: depth - 1)
40
+ v_capped, s = r_call(v, size: size, depth: depth - 1)
41
+ size -= s
42
+ h[k_capped] = v_capped
43
+ end
44
+ [h, h.size]
45
+ when Array
46
+ a = Sqreen::Util::CappedArray.new(size_cap: size_cap, depth_cap: depth)
47
+ e.each do |v|
48
+ break unless size > 0
49
+ c, s = r_call(v, size: size, depth: depth - 1)
50
+ a << c
51
+ size -= s
52
+ end
53
+ [a, a.size]
54
+ when String
55
+ return unless size > 0
56
+ size -= 1
57
+ s = Sqreen::Util::CappedString.new(size_cap: string_size_cap) << e
58
+ [s, 1]
59
+ else
60
+ return unless size > 0
61
+ size -= 1
62
+ [e, 1]
63
+ end
64
+ end
65
+ end
@@ -2,5 +2,5 @@
2
2
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
3
 
4
4
  module Sqreen
5
- VERSION = '1.18.2'.freeze
5
+ VERSION = '1.18.3'.freeze
6
6
  end
@@ -0,0 +1,18 @@
1
+ # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
+ # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
+
4
+ require 'sqreen/exception'
5
+
6
+ module Sqreen
7
+ class WAFError < Sqreen::Exception
8
+ attr_reader :rule_name, :error, :data, :args
9
+
10
+ def initialize(rule_name, error, data = nil, args = nil)
11
+ super(error.to_s)
12
+ @rule_name = rule_name
13
+ @error = error
14
+ @data = data
15
+ @args = args
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqreen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.2
4
+ version: 1.18.3
5
5
  platform: java
6
6
  authors:
7
7
  - Sqreen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-12 00:00:00.000000000 Z
11
+ date: 2019-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -47,25 +47,41 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - CHANGELOG.md
49
49
  - CODE_OF_CONDUCT.md
50
+ - LICENSE
50
51
  - README.md
51
52
  - Rakefile
52
- - lib/sqreen-alt.rb
53
53
  - lib/sqreen.rb
54
54
  - lib/sqreen/actions.rb
55
+ - lib/sqreen/actions/base.rb
56
+ - lib/sqreen/actions/block_ip.rb
57
+ - lib/sqreen/actions/block_user.rb
58
+ - lib/sqreen/actions/ip_range_indexed_action_class.rb
59
+ - lib/sqreen/actions/ip_ranges_index.rb
60
+ - lib/sqreen/actions/redirect_ip.rb
61
+ - lib/sqreen/actions/redirect_user.rb
62
+ - lib/sqreen/actions/repository.rb
63
+ - lib/sqreen/actions/unknown_action_type.rb
64
+ - lib/sqreen/actions/user_action_class.rb
55
65
  - lib/sqreen/agent.rb
66
+ - lib/sqreen/attack_blocked.rb
56
67
  - lib/sqreen/attack_detected.html
57
68
  - lib/sqreen/backport.rb
58
69
  - lib/sqreen/backport/original_name.rb
59
70
  - lib/sqreen/binding_accessor.rb
71
+ - lib/sqreen/binding_accessor/path_elem.rb
72
+ - lib/sqreen/binding_accessor/transforms.rb
60
73
  - lib/sqreen/ca.crt
61
74
  - lib/sqreen/call_countable.rb
62
- - lib/sqreen/callback_tree.rb
63
- - lib/sqreen/callbacks.rb
64
75
  - lib/sqreen/capped_queue.rb
76
+ - lib/sqreen/cb.rb
77
+ - lib/sqreen/cb_tree.rb
65
78
  - lib/sqreen/condition_evaluator.rb
66
79
  - lib/sqreen/conditionable.rb
67
80
  - lib/sqreen/configuration.rb
68
81
  - lib/sqreen/context.rb
82
+ - lib/sqreen/default_cb.rb
83
+ - lib/sqreen/deferred_logger.rb
84
+ - lib/sqreen/deliveries.rb
69
85
  - lib/sqreen/deliveries/batch.rb
70
86
  - lib/sqreen/deliveries/simple.rb
71
87
  - lib/sqreen/dependency.rb
@@ -73,17 +89,21 @@ files:
73
89
  - lib/sqreen/dependency/detector.rb
74
90
  - lib/sqreen/dependency/hook.rb
75
91
  - lib/sqreen/dependency/hook_point.rb
92
+ - lib/sqreen/dependency/libsqreen.rb
76
93
  - lib/sqreen/dependency/new_relic.rb
77
94
  - lib/sqreen/dependency/rack.rb
78
95
  - lib/sqreen/dependency/rails.rb
79
96
  - lib/sqreen/dependency/sentry.rb
80
97
  - lib/sqreen/dependency/sinatra.rb
81
98
  - lib/sqreen/encoding_sanitizer.rb
99
+ - lib/sqreen/error_handling_middleware.rb
82
100
  - lib/sqreen/event.rb
83
101
  - lib/sqreen/events/attack.rb
84
102
  - lib/sqreen/events/remote_exception.rb
85
103
  - lib/sqreen/events/request_record.rb
86
104
  - lib/sqreen/exception.rb
105
+ - lib/sqreen/formatter_with_tid.rb
106
+ - lib/sqreen/framework_cb.rb
87
107
  - lib/sqreen/frameworks.rb
88
108
  - lib/sqreen/frameworks/generic.rb
89
109
  - lib/sqreen/frameworks/rails.rb
@@ -92,10 +112,20 @@ files:
92
112
  - lib/sqreen/frameworks/sinatra.rb
93
113
  - lib/sqreen/frameworks/sqreen_test.rb
94
114
  - lib/sqreen/instrumentation.rb
115
+ - lib/sqreen/invalid_signature_exception.rb
116
+ - lib/sqreen/js.rb
117
+ - lib/sqreen/js/call_context.rb
118
+ - lib/sqreen/js/context_pool.rb
119
+ - lib/sqreen/js/exec_js_runnable.rb
95
120
  - lib/sqreen/js/execjs_adapter.rb
121
+ - lib/sqreen/js/executable_js.rb
96
122
  - lib/sqreen/js/js_service.rb
123
+ - lib/sqreen/js/js_service_adapter.rb
97
124
  - lib/sqreen/js/mini_racer_adapter.rb
125
+ - lib/sqreen/js/mini_racer_executable_js.rb
126
+ - lib/sqreen/js/thread_local_exec_js_runnable.rb
98
127
  - lib/sqreen/log.rb
128
+ - lib/sqreen/logger.rb
99
129
  - lib/sqreen/metrics.rb
100
130
  - lib/sqreen/metrics/average.rb
101
131
  - lib/sqreen/metrics/base.rb
@@ -103,57 +133,79 @@ files:
103
133
  - lib/sqreen/metrics/collect.rb
104
134
  - lib/sqreen/metrics/sum.rb
105
135
  - lib/sqreen/metrics_store.rb
136
+ - lib/sqreen/metrics_store/already_registered_metric.rb
137
+ - lib/sqreen/metrics_store/unknown_metric.rb
138
+ - lib/sqreen/metrics_store/unregistered_metric.rb
106
139
  - lib/sqreen/middleware.rb
107
140
  - lib/sqreen/mono_time.rb
141
+ - lib/sqreen/node.rb
142
+ - lib/sqreen/not_implemented_yet.rb
143
+ - lib/sqreen/null_logger.rb
108
144
  - lib/sqreen/payload_creator.rb
145
+ - lib/sqreen/payload_creator/header_section.rb
109
146
  - lib/sqreen/performance_notifications.rb
110
147
  - lib/sqreen/performance_notifications/binned_metrics.rb
111
148
  - lib/sqreen/performance_notifications/log.rb
112
149
  - lib/sqreen/performance_notifications/log_performance.rb
113
150
  - lib/sqreen/performance_notifications/metrics.rb
114
151
  - lib/sqreen/performance_notifications/newrelic.rb
152
+ - lib/sqreen/prefix.rb
153
+ - lib/sqreen/rails_middleware.rb
115
154
  - lib/sqreen/remote_command.rb
116
- - lib/sqreen/rule_attributes.rb
117
- - lib/sqreen/rule_callback.rb
155
+ - lib/sqreen/remote_command/failure_output.rb
118
156
  - lib/sqreen/rules.rb
119
- - lib/sqreen/rules_callbacks.rb
120
- - lib/sqreen/rules_callbacks/binding_accessor_matcher.rb
121
- - lib/sqreen/rules_callbacks/binding_accessor_metrics.rb
122
- - lib/sqreen/rules_callbacks/blacklist_ips.rb
123
- - lib/sqreen/rules_callbacks/count_http_codes.rb
124
- - lib/sqreen/rules_callbacks/crawler_user_agent_matches.rb
125
- - lib/sqreen/rules_callbacks/crawler_user_agent_matches_metrics.rb
126
- - lib/sqreen/rules_callbacks/custom_error.rb
127
- - lib/sqreen/rules_callbacks/devise_auth_track.rb
128
- - lib/sqreen/rules_callbacks/devise_signup_track.rb
129
- - lib/sqreen/rules_callbacks/execjs.rb
130
- - lib/sqreen/rules_callbacks/headers_insert.rb
131
- - lib/sqreen/rules_callbacks/inspect_rule.rb
132
- - lib/sqreen/rules_callbacks/matcher_rule.rb
133
- - lib/sqreen/rules_callbacks/not_found.rb
134
- - lib/sqreen/rules_callbacks/rails_parameters.rb
135
- - lib/sqreen/rules_callbacks/record_request_context.rb
136
- - lib/sqreen/rules_callbacks/reflected_xss.rb
137
- - lib/sqreen/rules_callbacks/regexp_rule.rb
138
- - lib/sqreen/rules_callbacks/run_req_start_actions.rb
139
- - lib/sqreen/rules_callbacks/run_user_actions.rb
140
- - lib/sqreen/rules_callbacks/sdk_auth_track.rb
141
- - lib/sqreen/rules_callbacks/sdk_signup_track.rb
142
- - lib/sqreen/rules_callbacks/shell_env.rb
143
- - lib/sqreen/rules_callbacks/url_matches.rb
144
- - lib/sqreen/rules_callbacks/user_agent_matches.rb
145
- - lib/sqreen/rules_callbacks/waf.rb
146
- - lib/sqreen/rules_signature.rb
157
+ - lib/sqreen/rules/attrs.rb
158
+ - lib/sqreen/rules/auth_track_cb.rb
159
+ - lib/sqreen/rules/binding_accessor_matcher_cb.rb
160
+ - lib/sqreen/rules/binding_accessor_metrics.rb
161
+ - lib/sqreen/rules/blacklist_ips_cb.rb
162
+ - lib/sqreen/rules/count_http_codes.rb
163
+ - lib/sqreen/rules/crawler_user_agent_matches_cb.rb
164
+ - lib/sqreen/rules/crawler_user_agent_matches_metrics_cb.rb
165
+ - lib/sqreen/rules/custom_error_cb.rb
166
+ - lib/sqreen/rules/devise_auth_track_cb.rb
167
+ - lib/sqreen/rules/devise_signup_track_cb.rb
168
+ - lib/sqreen/rules/execjs_cb.rb
169
+ - lib/sqreen/rules/headers_insert_cb.rb
170
+ - lib/sqreen/rules/matcher_rule.rb
171
+ - lib/sqreen/rules/not_found_cb.rb
172
+ - lib/sqreen/rules/rails_parameters_cb.rb
173
+ - lib/sqreen/rules/record_request_context.rb
174
+ - lib/sqreen/rules/regexp_rule_cb.rb
175
+ - lib/sqreen/rules/rule_cb.rb
176
+ - lib/sqreen/rules/run_req_start_actions.rb
177
+ - lib/sqreen/rules/run_user_actions.rb
178
+ - lib/sqreen/rules/shell_env_cb.rb
179
+ - lib/sqreen/rules/signup_track_cb.rb
180
+ - lib/sqreen/rules/update_request_context.rb
181
+ - lib/sqreen/rules/url_matches_cb.rb
182
+ - lib/sqreen/rules/user_agent_matches_cb.rb
183
+ - lib/sqreen/rules/waf_cb.rb
184
+ - lib/sqreen/rules/xss_cb.rb
185
+ - lib/sqreen/run_when_called_cb.rb
147
186
  - lib/sqreen/runner.rb
148
187
  - lib/sqreen/runtime_infos.rb
149
188
  - lib/sqreen/safe_json.rb
150
189
  - lib/sqreen/sdk.rb
190
+ - lib/sqreen/sensitive_data_redactor.rb
151
191
  - lib/sqreen/serializer.rb
152
192
  - lib/sqreen/session.rb
153
193
  - lib/sqreen/shared_storage.rb
154
194
  - lib/sqreen/shared_storage23.rb
195
+ - lib/sqreen/signature_verifier.rb
196
+ - lib/sqreen/sinatra_middleware.rb
197
+ - lib/sqreen/sqreen_signed_verifier.rb
198
+ - lib/sqreen/token_invalid_exception.rb
199
+ - lib/sqreen/token_not_found_exception.rb
155
200
  - lib/sqreen/trie.rb
201
+ - lib/sqreen/unauthorized.rb
202
+ - lib/sqreen/util.rb
203
+ - lib/sqreen/util/capped_array.rb
204
+ - lib/sqreen/util/capped_hash.rb
205
+ - lib/sqreen/util/capped_string.rb
206
+ - lib/sqreen/util/capper.rb
156
207
  - lib/sqreen/version.rb
208
+ - lib/sqreen/waf_error.rb
157
209
  - lib/sqreen/web_server.rb
158
210
  - lib/sqreen/web_server/generic.rb
159
211
  - lib/sqreen/web_server/passenger.rb
@@ -1,35 +0,0 @@
1
- # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
- # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
-
4
- require 'sqreen/rules_callbacks/regexp_rule'
5
- require 'sqreen/rules_callbacks/matcher_rule'
6
-
7
- require 'sqreen/rules_callbacks/record_request_context'
8
- require 'sqreen/rules_callbacks/rails_parameters'
9
-
10
- require 'sqreen/rules_callbacks/headers_insert'
11
- require 'sqreen/rules_callbacks/blacklist_ips'
12
-
13
- require 'sqreen/rules_callbacks/inspect_rule'
14
-
15
- require 'sqreen/rules_callbacks/shell_env'
16
-
17
- require 'sqreen/rules_callbacks/url_matches'
18
- require 'sqreen/rules_callbacks/user_agent_matches'
19
- require 'sqreen/rules_callbacks/crawler_user_agent_matches'
20
-
21
- require 'sqreen/rules_callbacks/reflected_xss'
22
- require 'sqreen/rules_callbacks/execjs'
23
-
24
- require 'sqreen/rules_callbacks/binding_accessor_metrics'
25
- require 'sqreen/rules_callbacks/binding_accessor_matcher'
26
- require 'sqreen/rules_callbacks/count_http_codes'
27
- require 'sqreen/rules_callbacks/not_found'
28
- require 'sqreen/rules_callbacks/crawler_user_agent_matches_metrics'
29
- require 'sqreen/rules_callbacks/sdk_auth_track'
30
- require 'sqreen/rules_callbacks/sdk_signup_track'
31
- require 'sqreen/rules_callbacks/devise_auth_track'
32
- require 'sqreen/rules_callbacks/devise_signup_track'
33
-
34
- require 'sqreen/rules_callbacks/custom_error'
35
- require 'sqreen/rules_callbacks/waf'
@@ -1,25 +0,0 @@
1
- # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
- # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
-
4
- require 'sqreen/rule_callback'
5
-
6
- module Sqreen
7
- module Rules
8
- class InspectRuleCB < RuleCB
9
- def pre(_inst, args, _budget = nil, &_block)
10
- Sqreen.log.debug { "<< #{@klass} #{@method} #{Thread.current}" }
11
- Sqreen.log.debug { args.map(&:inspect).join(' ') }
12
- end
13
-
14
- def post(rv, _inst, _args, _budget = nil, &_block)
15
- Sqreen.log.debug { ">> #{rv.inspect} #{@klass} #{@method} #{Thread.current}" }
16
- byebug if defined? byebug && @data.is_a?(Hash) && @data[:break] == 1
17
- end
18
-
19
- def failing(rv, _inst, _args, _budget = nil, &_block)
20
- Sqreen.log.debug { "># #{rv.inspect} #{@klass} #{@method} #{Thread.current}" }
21
- byebug if defined? byebug && @data.is_a?(Hash) && @data[:break] == 1
22
- end
23
- end
24
- end
25
- end