sqreen 1.18.2-java → 1.19.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/LICENSE +3 -0
  4. data/lib/sqreen.rb +2 -0
  5. data/lib/sqreen/actions.rb +13 -337
  6. data/lib/sqreen/actions/actions_index.rb +16 -0
  7. data/lib/sqreen/actions/base.rb +104 -0
  8. data/lib/sqreen/actions/block_ip.rb +34 -0
  9. data/lib/sqreen/actions/block_user.rb +46 -0
  10. data/lib/sqreen/actions/ip_range_indexed_action_class.rb +16 -0
  11. data/lib/sqreen/actions/ip_ranges_index.rb +57 -0
  12. data/lib/sqreen/actions/redirect_ip.rb +42 -0
  13. data/lib/sqreen/actions/redirect_user.rb +47 -0
  14. data/lib/sqreen/actions/repository.rb +43 -0
  15. data/lib/sqreen/actions/unknown_action_type.rb +20 -0
  16. data/lib/sqreen/actions/user_action_class.rb +16 -0
  17. data/lib/sqreen/actions/users_index.rb +35 -0
  18. data/lib/sqreen/agent.rb +6 -2
  19. data/lib/sqreen/attack_blocked.rb +19 -0
  20. data/lib/sqreen/backport.rb +2 -0
  21. data/lib/sqreen/backport/clock_gettime.rb +74 -0
  22. data/lib/sqreen/backport/original_name.rb +2 -0
  23. data/lib/sqreen/binding_accessor.rb +11 -102
  24. data/lib/sqreen/binding_accessor/path_elem.rb +10 -0
  25. data/lib/sqreen/binding_accessor/transforms.rb +114 -0
  26. data/lib/sqreen/call_countable.rb +2 -0
  27. data/lib/sqreen/capped_queue.rb +4 -0
  28. data/lib/sqreen/{callbacks.rb → cb.rb} +3 -53
  29. data/lib/sqreen/{callback_tree.rb → cb_tree.rb} +4 -2
  30. data/lib/sqreen/condition_evaluator.rb +24 -5
  31. data/lib/sqreen/conditionable.rb +2 -0
  32. data/lib/sqreen/configuration.rb +19 -0
  33. data/lib/sqreen/context.rb +2 -0
  34. data/lib/sqreen/default_cb.rb +22 -0
  35. data/lib/sqreen/deferred_logger.rb +65 -0
  36. data/lib/sqreen/deliveries.rb +12 -0
  37. data/lib/sqreen/deliveries/batch.rb +9 -1
  38. data/lib/sqreen/deliveries/simple.rb +7 -0
  39. data/lib/sqreen/dependency.rb +3 -1
  40. data/lib/sqreen/dependency/detector.rb +22 -14
  41. data/lib/sqreen/dependency/libsqreen.rb +32 -0
  42. data/lib/sqreen/dependency/new_relic.rb +2 -0
  43. data/lib/sqreen/dependency/rack.rb +10 -5
  44. data/lib/sqreen/dependency/rails.rb +8 -0
  45. data/lib/sqreen/dependency/sentry.rb +2 -0
  46. data/lib/sqreen/dependency/sinatra.rb +58 -14
  47. data/lib/sqreen/encoding_sanitizer.rb +2 -0
  48. data/lib/sqreen/error_handling_middleware.rb +32 -0
  49. data/lib/sqreen/event.rb +4 -0
  50. data/lib/sqreen/events/attack.rb +4 -0
  51. data/lib/sqreen/events/remote_exception.rb +2 -0
  52. data/lib/sqreen/events/request_record.rb +13 -56
  53. data/lib/sqreen/exception.rb +11 -40
  54. data/lib/sqreen/formatter_with_tid.rb +47 -0
  55. data/lib/sqreen/framework_cb.rb +30 -0
  56. data/lib/sqreen/frameworks.rb +9 -0
  57. data/lib/sqreen/frameworks/generic.rb +22 -2
  58. data/lib/sqreen/frameworks/rails.rb +3 -0
  59. data/lib/sqreen/frameworks/rails3.rb +2 -0
  60. data/lib/sqreen/frameworks/request_recorder.rb +5 -0
  61. data/lib/sqreen/frameworks/sinatra.rb +4 -0
  62. data/lib/sqreen/frameworks/sqreen_test.rb +4 -0
  63. data/lib/sqreen/graft.rb +12 -0
  64. data/lib/sqreen/graft/call.rb +150 -0
  65. data/lib/sqreen/{dependency → graft}/callback.rb +12 -4
  66. data/lib/sqreen/graft/hook.rb +316 -0
  67. data/lib/sqreen/{dependency → graft}/hook_point.rb +152 -33
  68. data/lib/sqreen/graft/hook_point_error.rb +10 -0
  69. data/lib/sqreen/invalid_signature_exception.rb +10 -0
  70. data/lib/sqreen/js.rb +11 -0
  71. data/lib/sqreen/js/call_context.rb +12 -0
  72. data/lib/sqreen/js/context_pool.rb +62 -0
  73. data/lib/sqreen/js/exec_js_runnable.rb +22 -0
  74. data/lib/sqreen/js/execjs_adapter.rb +8 -47
  75. data/lib/sqreen/js/executable_js.rb +14 -0
  76. data/lib/sqreen/js/js_service.rb +4 -22
  77. data/lib/sqreen/js/js_service_adapter.rb +20 -0
  78. data/lib/sqreen/js/mini_racer_adapter.rb +8 -180
  79. data/lib/sqreen/js/mini_racer_executable_js.rb +144 -0
  80. data/lib/sqreen/js/thread_local_exec_js_runnable.rb +49 -0
  81. data/lib/{sqreen-alt.rb → sqreen/legacy.rb} +5 -1
  82. data/lib/sqreen/{instrumentation.rb → legacy/instrumentation.rb} +44 -15
  83. data/lib/sqreen/log.rb +10 -188
  84. data/lib/sqreen/log/loggable.rb +28 -0
  85. data/lib/sqreen/logger.rb +85 -0
  86. data/lib/sqreen/metrics.rb +2 -0
  87. data/lib/sqreen/metrics/average.rb +2 -0
  88. data/lib/sqreen/metrics/base.rb +2 -0
  89. data/lib/sqreen/metrics/binning.rb +2 -0
  90. data/lib/sqreen/metrics/collect.rb +2 -0
  91. data/lib/sqreen/metrics/sum.rb +2 -0
  92. data/lib/sqreen/metrics_store.rb +5 -11
  93. data/lib/sqreen/metrics_store/already_registered_metric.rb +13 -0
  94. data/lib/sqreen/metrics_store/unknown_metric.rb +13 -0
  95. data/lib/sqreen/metrics_store/unregistered_metric.rb +13 -0
  96. data/lib/sqreen/middleware.rb +2 -34
  97. data/lib/sqreen/mono_time.rb +4 -0
  98. data/lib/sqreen/node.rb +46 -0
  99. data/lib/sqreen/not_implemented_yet.rb +10 -0
  100. data/lib/sqreen/null_logger.rb +26 -0
  101. data/lib/sqreen/payload_creator.rb +4 -19
  102. data/lib/sqreen/payload_creator/header_section.rb +30 -0
  103. data/lib/sqreen/performance_notifications.rb +2 -0
  104. data/lib/sqreen/performance_notifications/binned_metrics.rb +2 -0
  105. data/lib/sqreen/performance_notifications/log.rb +2 -0
  106. data/lib/sqreen/performance_notifications/log_performance.rb +2 -0
  107. data/lib/sqreen/performance_notifications/metrics.rb +2 -0
  108. data/lib/sqreen/performance_notifications/newrelic.rb +2 -0
  109. data/lib/sqreen/prefix.rb +35 -0
  110. data/lib/sqreen/rails_middleware.rb +16 -0
  111. data/lib/sqreen/remote_command.rb +3 -8
  112. data/lib/sqreen/remote_command/failure_output.rb +16 -0
  113. data/lib/sqreen/rules.rb +34 -2
  114. data/lib/sqreen/{rule_attributes.rb → rules/attrs.rb} +2 -0
  115. data/lib/sqreen/{rules_callbacks/sdk_auth_track.rb → rules/auth_track_cb.rb} +4 -2
  116. data/lib/sqreen/{rules_callbacks/binding_accessor_matcher.rb → rules/binding_accessor_matcher_cb.rb} +6 -8
  117. data/lib/sqreen/{rules_callbacks → rules}/binding_accessor_metrics.rb +3 -1
  118. data/lib/sqreen/{rules_callbacks/blacklist_ips.rb → rules/blacklist_ips_cb.rb} +5 -2
  119. data/lib/sqreen/{rules_callbacks → rules}/count_http_codes.rb +4 -2
  120. data/lib/sqreen/{rules_callbacks/crawler_user_agent_matches.rb → rules/crawler_user_agent_matches_cb.rb} +3 -1
  121. data/lib/sqreen/{rules_callbacks/crawler_user_agent_matches_metrics.rb → rules/crawler_user_agent_matches_metrics_cb.rb} +3 -1
  122. data/lib/sqreen/{rules_callbacks/custom_error.rb → rules/custom_error_cb.rb} +3 -1
  123. data/lib/sqreen/{rules_callbacks/devise_auth_track.rb → rules/devise_auth_track_cb.rb} +4 -2
  124. data/lib/sqreen/{rules_callbacks/devise_signup_track.rb → rules/devise_signup_track_cb.rb} +4 -2
  125. data/lib/sqreen/{rules_callbacks/execjs.rb → rules/execjs_cb.rb} +51 -50
  126. data/lib/sqreen/{rules_callbacks/headers_insert.rb → rules/headers_insert_cb.rb} +8 -1
  127. data/lib/sqreen/{rules_callbacks → rules}/matcher_rule.rb +4 -2
  128. data/lib/sqreen/{rules_callbacks/not_found.rb → rules/not_found_cb.rb} +7 -2
  129. data/lib/sqreen/{rules_callbacks/rails_parameters.rb → rules/rails_parameters_cb.rb} +3 -1
  130. data/lib/sqreen/{rules_callbacks → rules}/record_request_context.rb +3 -1
  131. data/lib/sqreen/{rules_callbacks/regexp_rule.rb → rules/regexp_rule_cb.rb} +3 -1
  132. data/lib/sqreen/{rule_callback.rb → rules/rule_cb.rb} +4 -2
  133. data/lib/sqreen/{rules_callbacks → rules}/run_req_start_actions.rb +7 -3
  134. data/lib/sqreen/{rules_callbacks → rules}/run_user_actions.rb +4 -2
  135. data/lib/sqreen/{rules_callbacks/shell_env.rb → rules/shell_env_cb.rb} +3 -1
  136. data/lib/sqreen/{rules_callbacks/sdk_signup_track.rb → rules/signup_track_cb.rb} +4 -2
  137. data/lib/sqreen/rules/update_request_context.rb +22 -0
  138. data/lib/sqreen/{rules_callbacks/url_matches.rb → rules/url_matches_cb.rb} +3 -1
  139. data/lib/sqreen/{rules_callbacks/user_agent_matches.rb → rules/user_agent_matches_cb.rb} +3 -1
  140. data/lib/sqreen/{rules_callbacks/waf.rb → rules/waf_cb.rb} +41 -21
  141. data/lib/sqreen/{rules_callbacks/reflected_xss.rb → rules/xss_cb.rb} +12 -7
  142. data/lib/sqreen/run_when_called_cb.rb +23 -0
  143. data/lib/sqreen/runner.rb +25 -7
  144. data/lib/sqreen/runtime_infos.rb +4 -9
  145. data/lib/sqreen/safe_json.rb +2 -0
  146. data/lib/sqreen/sdk.rb +4 -0
  147. data/lib/sqreen/sensitive_data_redactor.rb +113 -0
  148. data/lib/sqreen/serializer.rb +2 -0
  149. data/lib/sqreen/session.rb +2 -0
  150. data/lib/sqreen/shared_storage.rb +2 -0
  151. data/lib/sqreen/shared_storage23.rb +2 -0
  152. data/lib/sqreen/shrink_wrap.rb +16 -0
  153. data/lib/sqreen/signature_verifier.rb +22 -0
  154. data/lib/sqreen/sinatra_middleware.rb +16 -0
  155. data/lib/sqreen/{rules_signature.rb → sqreen_signed_verifier.rb} +7 -17
  156. data/lib/sqreen/token_invalid_exception.rb +10 -0
  157. data/lib/sqreen/token_not_found_exception.rb +11 -0
  158. data/lib/sqreen/trie.rb +5 -64
  159. data/lib/sqreen/unauthorized.rb +10 -0
  160. data/lib/sqreen/util.rb +7 -0
  161. data/lib/sqreen/util/capped_array.rb +35 -0
  162. data/lib/sqreen/util/capped_hash.rb +41 -0
  163. data/lib/sqreen/util/capped_string.rb +26 -0
  164. data/lib/sqreen/util/capper.rb +67 -0
  165. data/lib/sqreen/version.rb +3 -1
  166. data/lib/sqreen/waf_error.rb +20 -0
  167. data/lib/sqreen/weave.rb +12 -0
  168. data/lib/sqreen/weave/hardcoded.rb +19 -0
  169. data/lib/sqreen/weave/instrumentor.rb +48 -0
  170. data/lib/sqreen/weave/legacy.rb +12 -0
  171. data/lib/sqreen/weave/legacy/instrumentation.rb +406 -0
  172. data/lib/sqreen/web_server.rb +2 -0
  173. data/lib/sqreen/web_server/generic.rb +2 -0
  174. data/lib/sqreen/web_server/passenger.rb +2 -0
  175. data/lib/sqreen/web_server/puma.rb +2 -0
  176. data/lib/sqreen/web_server/rainbows.rb +2 -0
  177. data/lib/sqreen/web_server/thin.rb +2 -0
  178. data/lib/sqreen/web_server/unicorn.rb +2 -0
  179. data/lib/sqreen/web_server/webrick.rb +2 -0
  180. data/lib/sqreen/worker.rb +2 -0
  181. metadata +105 -39
  182. data/lib/sqreen/dependency/hook.rb +0 -102
  183. data/lib/sqreen/rules_callbacks.rb +0 -35
  184. data/lib/sqreen/rules_callbacks/inspect_rule.rb +0 -25
@@ -1,3 +1,5 @@
1
+ # typed: ignore
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: true
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: ignore
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: ignore
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: ignore
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: ignore
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: ignore
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: true
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
@@ -1,3 +1,5 @@
1
+ # typed: false
2
+
1
3
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
4
  # Please refer to our terms for more information: https://www.sqreen.com/terms.html
3
5
 
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.19.0
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: 2020-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -47,43 +47,63 @@ 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/actions_index.rb
56
+ - lib/sqreen/actions/base.rb
57
+ - lib/sqreen/actions/block_ip.rb
58
+ - lib/sqreen/actions/block_user.rb
59
+ - lib/sqreen/actions/ip_range_indexed_action_class.rb
60
+ - lib/sqreen/actions/ip_ranges_index.rb
61
+ - lib/sqreen/actions/redirect_ip.rb
62
+ - lib/sqreen/actions/redirect_user.rb
63
+ - lib/sqreen/actions/repository.rb
64
+ - lib/sqreen/actions/unknown_action_type.rb
65
+ - lib/sqreen/actions/user_action_class.rb
66
+ - lib/sqreen/actions/users_index.rb
55
67
  - lib/sqreen/agent.rb
68
+ - lib/sqreen/attack_blocked.rb
56
69
  - lib/sqreen/attack_detected.html
57
70
  - lib/sqreen/backport.rb
71
+ - lib/sqreen/backport/clock_gettime.rb
58
72
  - lib/sqreen/backport/original_name.rb
59
73
  - lib/sqreen/binding_accessor.rb
74
+ - lib/sqreen/binding_accessor/path_elem.rb
75
+ - lib/sqreen/binding_accessor/transforms.rb
60
76
  - lib/sqreen/ca.crt
61
77
  - lib/sqreen/call_countable.rb
62
- - lib/sqreen/callback_tree.rb
63
- - lib/sqreen/callbacks.rb
64
78
  - lib/sqreen/capped_queue.rb
79
+ - lib/sqreen/cb.rb
80
+ - lib/sqreen/cb_tree.rb
65
81
  - lib/sqreen/condition_evaluator.rb
66
82
  - lib/sqreen/conditionable.rb
67
83
  - lib/sqreen/configuration.rb
68
84
  - lib/sqreen/context.rb
85
+ - lib/sqreen/default_cb.rb
86
+ - lib/sqreen/deferred_logger.rb
87
+ - lib/sqreen/deliveries.rb
69
88
  - lib/sqreen/deliveries/batch.rb
70
89
  - lib/sqreen/deliveries/simple.rb
71
90
  - lib/sqreen/dependency.rb
72
- - lib/sqreen/dependency/callback.rb
73
91
  - lib/sqreen/dependency/detector.rb
74
- - lib/sqreen/dependency/hook.rb
75
- - 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
@@ -91,11 +111,29 @@ files:
91
111
  - lib/sqreen/frameworks/request_recorder.rb
92
112
  - lib/sqreen/frameworks/sinatra.rb
93
113
  - lib/sqreen/frameworks/sqreen_test.rb
94
- - lib/sqreen/instrumentation.rb
114
+ - lib/sqreen/graft.rb
115
+ - lib/sqreen/graft/call.rb
116
+ - lib/sqreen/graft/callback.rb
117
+ - lib/sqreen/graft/hook.rb
118
+ - lib/sqreen/graft/hook_point.rb
119
+ - lib/sqreen/graft/hook_point_error.rb
120
+ - lib/sqreen/invalid_signature_exception.rb
121
+ - lib/sqreen/js.rb
122
+ - lib/sqreen/js/call_context.rb
123
+ - lib/sqreen/js/context_pool.rb
124
+ - lib/sqreen/js/exec_js_runnable.rb
95
125
  - lib/sqreen/js/execjs_adapter.rb
126
+ - lib/sqreen/js/executable_js.rb
96
127
  - lib/sqreen/js/js_service.rb
128
+ - lib/sqreen/js/js_service_adapter.rb
97
129
  - lib/sqreen/js/mini_racer_adapter.rb
130
+ - lib/sqreen/js/mini_racer_executable_js.rb
131
+ - lib/sqreen/js/thread_local_exec_js_runnable.rb
132
+ - lib/sqreen/legacy.rb
133
+ - lib/sqreen/legacy/instrumentation.rb
98
134
  - lib/sqreen/log.rb
135
+ - lib/sqreen/log/loggable.rb
136
+ - lib/sqreen/logger.rb
99
137
  - lib/sqreen/metrics.rb
100
138
  - lib/sqreen/metrics/average.rb
101
139
  - lib/sqreen/metrics/base.rb
@@ -103,57 +141,85 @@ files:
103
141
  - lib/sqreen/metrics/collect.rb
104
142
  - lib/sqreen/metrics/sum.rb
105
143
  - lib/sqreen/metrics_store.rb
144
+ - lib/sqreen/metrics_store/already_registered_metric.rb
145
+ - lib/sqreen/metrics_store/unknown_metric.rb
146
+ - lib/sqreen/metrics_store/unregistered_metric.rb
106
147
  - lib/sqreen/middleware.rb
107
148
  - lib/sqreen/mono_time.rb
149
+ - lib/sqreen/node.rb
150
+ - lib/sqreen/not_implemented_yet.rb
151
+ - lib/sqreen/null_logger.rb
108
152
  - lib/sqreen/payload_creator.rb
153
+ - lib/sqreen/payload_creator/header_section.rb
109
154
  - lib/sqreen/performance_notifications.rb
110
155
  - lib/sqreen/performance_notifications/binned_metrics.rb
111
156
  - lib/sqreen/performance_notifications/log.rb
112
157
  - lib/sqreen/performance_notifications/log_performance.rb
113
158
  - lib/sqreen/performance_notifications/metrics.rb
114
159
  - lib/sqreen/performance_notifications/newrelic.rb
160
+ - lib/sqreen/prefix.rb
161
+ - lib/sqreen/rails_middleware.rb
115
162
  - lib/sqreen/remote_command.rb
116
- - lib/sqreen/rule_attributes.rb
117
- - lib/sqreen/rule_callback.rb
163
+ - lib/sqreen/remote_command/failure_output.rb
118
164
  - 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
165
+ - lib/sqreen/rules/attrs.rb
166
+ - lib/sqreen/rules/auth_track_cb.rb
167
+ - lib/sqreen/rules/binding_accessor_matcher_cb.rb
168
+ - lib/sqreen/rules/binding_accessor_metrics.rb
169
+ - lib/sqreen/rules/blacklist_ips_cb.rb
170
+ - lib/sqreen/rules/count_http_codes.rb
171
+ - lib/sqreen/rules/crawler_user_agent_matches_cb.rb
172
+ - lib/sqreen/rules/crawler_user_agent_matches_metrics_cb.rb
173
+ - lib/sqreen/rules/custom_error_cb.rb
174
+ - lib/sqreen/rules/devise_auth_track_cb.rb
175
+ - lib/sqreen/rules/devise_signup_track_cb.rb
176
+ - lib/sqreen/rules/execjs_cb.rb
177
+ - lib/sqreen/rules/headers_insert_cb.rb
178
+ - lib/sqreen/rules/matcher_rule.rb
179
+ - lib/sqreen/rules/not_found_cb.rb
180
+ - lib/sqreen/rules/rails_parameters_cb.rb
181
+ - lib/sqreen/rules/record_request_context.rb
182
+ - lib/sqreen/rules/regexp_rule_cb.rb
183
+ - lib/sqreen/rules/rule_cb.rb
184
+ - lib/sqreen/rules/run_req_start_actions.rb
185
+ - lib/sqreen/rules/run_user_actions.rb
186
+ - lib/sqreen/rules/shell_env_cb.rb
187
+ - lib/sqreen/rules/signup_track_cb.rb
188
+ - lib/sqreen/rules/update_request_context.rb
189
+ - lib/sqreen/rules/url_matches_cb.rb
190
+ - lib/sqreen/rules/user_agent_matches_cb.rb
191
+ - lib/sqreen/rules/waf_cb.rb
192
+ - lib/sqreen/rules/xss_cb.rb
193
+ - lib/sqreen/run_when_called_cb.rb
147
194
  - lib/sqreen/runner.rb
148
195
  - lib/sqreen/runtime_infos.rb
149
196
  - lib/sqreen/safe_json.rb
150
197
  - lib/sqreen/sdk.rb
198
+ - lib/sqreen/sensitive_data_redactor.rb
151
199
  - lib/sqreen/serializer.rb
152
200
  - lib/sqreen/session.rb
153
201
  - lib/sqreen/shared_storage.rb
154
202
  - lib/sqreen/shared_storage23.rb
203
+ - lib/sqreen/shrink_wrap.rb
204
+ - lib/sqreen/signature_verifier.rb
205
+ - lib/sqreen/sinatra_middleware.rb
206
+ - lib/sqreen/sqreen_signed_verifier.rb
207
+ - lib/sqreen/token_invalid_exception.rb
208
+ - lib/sqreen/token_not_found_exception.rb
155
209
  - lib/sqreen/trie.rb
210
+ - lib/sqreen/unauthorized.rb
211
+ - lib/sqreen/util.rb
212
+ - lib/sqreen/util/capped_array.rb
213
+ - lib/sqreen/util/capped_hash.rb
214
+ - lib/sqreen/util/capped_string.rb
215
+ - lib/sqreen/util/capper.rb
156
216
  - lib/sqreen/version.rb
217
+ - lib/sqreen/waf_error.rb
218
+ - lib/sqreen/weave.rb
219
+ - lib/sqreen/weave/hardcoded.rb
220
+ - lib/sqreen/weave/instrumentor.rb
221
+ - lib/sqreen/weave/legacy.rb
222
+ - lib/sqreen/weave/legacy/instrumentation.rb
157
223
  - lib/sqreen/web_server.rb
158
224
  - lib/sqreen/web_server/generic.rb
159
225
  - lib/sqreen/web_server/passenger.rb
@@ -1,102 +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/dependency/callback'
5
- require 'sqreen/dependency/hook_point'
6
-
7
- module Sqreen
8
- module Dependency
9
- class Hook
10
- @hooks = {}
11
-
12
- def self.[](hook_point)
13
- @hooks[hook_point] ||= new(hook_point)
14
- end
15
-
16
- def self.add(hook_point, &block)
17
- self[hook_point].add(&block)
18
- end
19
-
20
- attr_reader :point
21
-
22
- def initialize(hook_point, dependency_test = nil)
23
- @disabled = false
24
- @point = hook_point.is_a?(HookPoint) ? hook_point : HookPoint.new(hook_point)
25
- @before = []
26
- @after = []
27
- @raised = []
28
- @dependency_test = dependency_test || Proc.new { point.exist? }
29
- end
30
-
31
- def dependency?
32
- @dependency_test.call if @dependency_test
33
- end
34
-
35
- def add(&block)
36
- tap { instance_eval(&block) }
37
- end
38
-
39
- def callback_name(whence, tag = nil)
40
- "#{point}@#{whence}" << (tag ? ":#{tag}" : "")
41
- end
42
-
43
- def before(tag = nil, &block)
44
- return @before if block.nil?
45
-
46
- @before << Callback.new(callback_name(:before, tag), &block)
47
- end
48
-
49
- def after(tag = nil, &block)
50
- return @after if block.nil?
51
-
52
- @after << Callback.new(callback_name(:after, tag), &block)
53
- end
54
-
55
- def raised(tag = nil, &block)
56
- return @raised if block.nil?
57
-
58
- @raised << Callback.new(callback_name(:raised, tag), &block)
59
- end
60
-
61
- def depends_on(&block)
62
- @dependency_test = block
63
- end
64
-
65
- def enable
66
- @disabled = false
67
- end
68
-
69
- def disable
70
- @disabled = true
71
- end
72
-
73
- def disabled?
74
- @disabled
75
- end
76
-
77
- def install
78
- unless point.exist?
79
- Sqreen.log.debug "[#{Process.pid}] #{point} not found"
80
- return
81
- end
82
- Sqreen.log.debug "[#{Process.pid}] Hook #{point}: installing"
83
-
84
- point.install('sqreen_hook', &Sqreen::Dependency::Hook.wrapper(self))
85
- end
86
-
87
- def self.wrapper(hook)
88
- # pass self to cbs
89
- Proc.new do |*args, &block|
90
- Sqreen.log.debug "[#{Process.pid}] Hook #{hook.point} disabled:#{hook.disabled?} caller:#{Kernel.caller[1].inspect}"
91
- hook.before.each { |c| c.call(c, self, args) } unless hook.disabled?
92
- begin
93
- hook.point.apply(self, 'sqreen_hook', *args, &block)
94
- rescue ::Exception => e # rubocop:disable Lint/RescueException
95
- hook.raised.each { |c| c.call(c, self, e, args) } unless hook.disabled?
96
- raise
97
- end.tap { |v| hook.after.each { |c| c.call(c, self, v, args) } unless hook.disabled? }
98
- end
99
- end
100
- end
101
- end
102
- end
@@ -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