Skip to content

Commit e307d57

Browse files
committed
Adjust rule structure. Pass parameters to the rule closure. Adjusted secret key in tests.
1 parent e7793ee commit e307d57

7 files changed

Lines changed: 53 additions & 17 deletions

File tree

src/Processor.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,10 @@ public function launch($mustExit = true)
160160
require dirname(__FILE__) . '/../vendor/autoload.php';
161161
if (PHP_VERSION_ID < 80100) {
162162
\Opis\Closure\SerializableClosure::setSecretKey($this->secret);
163+
$type = 'opis';
163164
} else {
164165
\Laravel\SerializableClosure\SerializableClosure::setSecretKey($this->secret);
166+
$type = 'laravel';
165167
}
166168

167169
// Grab the IP address of the request.
@@ -174,7 +176,7 @@ public function launch($mustExit = true)
174176
$rules = array_merge($this->whitelistRules, $this->firewallRules);
175177
foreach ($rules as $rule) {
176178
// Get the firewall rule and extract it.
177-
$vpatch = base64_decode($rule->rule);
179+
$vpatch = base64_decode($rule->rule_closure->{$type});
178180
if (!$vpatch) {
179181
continue;
180182
}
@@ -188,7 +190,7 @@ public function launch($mustExit = true)
188190
}
189191

190192
$closure = $vpatch->getClosure();
191-
$rule_hit = $closure();
193+
$rule_hit = $closure($ip, $dataset, $request);
192194
} catch (\Exception $e) {
193195
continue;
194196
}

tests/FirewallDatasetTest.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ public function testRules()
7676
// Since the Opis/Closure package does not support PHP 8.1+, we have to use Laravel's ported version for 8.1+.
7777
require dirname(__FILE__) . '/../vendor/autoload.php';
7878
if (PHP_VERSION_ID < 80100) {
79-
\Opis\Closure\SerializableClosure::setSecretKey('secret');
79+
\Opis\Closure\SerializableClosure::setSecretKey('be298ce20996fbe66657d6b1ba4412fae11b3594');
8080
class_alias('\Opis\Closure\SerializableClosure', 'SerializeClosure');
8181
} else {
82-
\Laravel\SerializableClosure\SerializableClosure::setSecretKey('secret');
82+
\Laravel\SerializableClosure\SerializableClosure::setSecretKey('be298ce20996fbe66657d6b1ba4412fae11b3594');
8383
class_alias('\Laravel\SerializableClosure\SerializableClosure', 'SerializeClosure');
8484
}
8585

@@ -95,7 +95,9 @@ class_alias('\Laravel\SerializableClosure\SerializableClosure', 'SerializeClosur
9595
$rule = (object) [
9696
'id' => 1,
9797
'title' => 'Determine if IP is in blacklist',
98-
'rule' => base64_encode(serialize($wrapper)),
98+
'rule_closure' => (object) [
99+
'opis' => base64_encode(serialize($wrapper))
100+
],
99101
'cat' => 'TEST',
100102
'type' => 'BLOCK'
101103
];
@@ -114,7 +116,9 @@ class_alias('\Laravel\SerializableClosure\SerializableClosure', 'SerializeClosur
114116
$rule = (object) [
115117
'id' => 1,
116118
'title' => 'Determine if union all select regex is a hit in the id GET parameter',
117-
'rule' => base64_encode(serialize($wrapper)),
119+
'rule_closure' => (object) [
120+
'opis' => base64_encode(serialize($wrapper))
121+
],
118122
'cat' => 'TEST',
119123
'type' => 'BLOCK'
120124
];

tests/FirewallRuleCreationTest.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ public function testFirewallRuleCreation()
6868
// Since the Opis/Closure package does not support PHP 8.1+, we have to use Laravel's ported version for 8.1+.
6969
require dirname(__FILE__) . '/../vendor/autoload.php';
7070
if (PHP_VERSION_ID < 80100) {
71-
\Opis\Closure\SerializableClosure::setSecretKey('secret');
71+
\Opis\Closure\SerializableClosure::setSecretKey('be298ce20996fbe66657d6b1ba4412fae11b3594');
7272
} else {
73-
\Laravel\SerializableClosure\SerializableClosure::setSecretKey('secret');
73+
\Laravel\SerializableClosure\SerializableClosure::setSecretKey('be298ce20996fbe66657d6b1ba4412fae11b3594');
7474
}
7575

7676
// Create the firewall rule.
@@ -81,7 +81,9 @@ public function testFirewallRuleCreation()
8181
$rule = (object) [
8282
'id' => 1,
8383
'title' => 'Block request with test query parameter in the URL.',
84-
'rule' => base64_encode(serialize($wrapper)),
84+
'rule_closure' => (object) [
85+
'opis' => base64_encode(serialize($wrapper))
86+
],
8587
'cat' => 'TEST',
8688
'type' => 'BLOCK'
8789
];
@@ -108,7 +110,9 @@ public function testFirewallRuleCreation()
108110
$rule = (object) [
109111
'id' => 1,
110112
'title' => 'Block request with encoded payload',
111-
'rule' => base64_encode(serialize($wrapper)),
113+
'rule_closure' => (object) [
114+
'opis' => base64_encode(serialize($wrapper))
115+
],
112116
'cat' => 'TEST',
113117
'type' => 'BLOCK'
114118
];

tests/FirewallTest.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ private function setUpFirewallProcessor(array $rules)
3838
{
3939
$this->processor = new Processor(
4040
new Extension(),
41-
$rules
41+
$rules,
42+
[],
43+
[
44+
'secret' => 'be298ce20996fbe66657d6b1ba4412fae11b3594'
45+
]
4246
);
4347
}
4448

tests/WhitelistTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ protected function setUp(): void
3131
$this->processor = new Processor(
3232
new Extension(),
3333
$this->rules,
34-
$this->whitelist
34+
$this->whitelist,
35+
[
36+
'secret' => 'be298ce20996fbe66657d6b1ba4412fae11b3594'
37+
]
3538
);
3639
}
3740

tests/data/Rules.json

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,33 @@
11
[
22
{
33
"id":1,
4-
"title":"Block test parameter being present in the URL","rule":"QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjI5OTp7QExNVWRYZWZmVTlHMzJPUk1EWGlxZGNNby9RaXdpVytnZFNRL1h6K1U3Z3M9LmE6NTp7czozOiJ1c2UiO2E6MTp7czoyOiJpcCI7czo0OiJ0ZXN0Ijt9czo4OiJmdW5jdGlvbiI7czoxMDk6ImZ1bmN0aW9uICgpIHVzZSAoJGlwKXsNCiAgICBpZiAoIWlzc2V0KCRfR0VUWyd0ZXN0J10pKSB7DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQoNCiAgICByZXR1cm4gdHJ1ZTsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDAzMzdmMTY2ZjAwMDAwMDAwM2E3MDNkNjIiO319",
4+
"title":"Block test parameter being present in the URL",
5+
"rule_closure": {
6+
"opis": "QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjI0Mjp7QG8rb3UwQkYvUVhOOTVIQldTYWpiS2dBVjI0cXdnYlJldHhMZ04vZ0dWVnc9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6NzM6ImZ1bmN0aW9uICgkaXAsICRkYXRhc2V0LCAkcmVxdWVzdCkgew0KICAgIHJldHVybiBpc3NldCgkX0dFVFsndGVzdCddKTsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDAwOGMyMDU5YjAwMDAwMDAwNWRmZTZlZDAiO319",
7+
"laravel": "Tzo0NzoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjE6e3M6MTI6InNlcmlhbGl6YWJsZSI7Tzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXFNpZ25lZCI6Mjp7czoxMjoic2VyaWFsaXphYmxlIjtzOjI0ODoiTzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXE5hdGl2ZSI6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6NzM6ImZ1bmN0aW9uICgkaXAsICRkYXRhc2V0LCAkcmVxdWVzdCkgew0KICAgIHJldHVybiBpc3NldCgkX0dFVFsndGVzdCddKTsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDAwOGMyMDU5YjAwMDAwMDAwNWRmZTZlZDAiO30iO3M6NDoiaGFzaCI7czo0NDoiOUJ0NHFaQXZ5U3kvaVhJNzlyaWtZbms0N0VObHZvZEpGMWVOS2Z5V3lmVT0iO319"
8+
},
59
"cat":"TEST",
610
"type":"BLOCK",
711
"type_params":null
812
},
913
{
1014
"id":2,
11-
"title":"Block backdoor parameter in payload set to mybackdoor and user agent containing some_backdoor_agent.","rule":"QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjQ3Mzp7QDhaZi9mUkxHb1FrZUNYVytDaW9OdTN5UXhpVEhvaDFNQnJHbDIwUzhSUTA9LmE6NTp7czozOiJ1c2UiO2E6MTp7czoyOiJpcCI7czo0OiJ0ZXN0Ijt9czo4OiJmdW5jdGlvbiI7czoyODM6ImZ1bmN0aW9uICgpIHVzZSAoJGlwKXsNCiAgICAkdXNlcl9hZ2VudCA9ICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsNCg0KICAgIGlmKGlzc2V0KCRfUE9TVFsnYmFja2Rvb3InXSkgJiYgJF9QT1NUWydiYWNrZG9vciddID09ICdteWJhY2tkb29yJyl7DQogICAgICAgIGlmKFxzdHJpcG9zKCR1c2VyX2FnZW50LCAnc29tZV9iYWNrZG9vcl9hZ2VudCcpICE9PSBmYWxzZSl7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHJldHVybiBmYWxzZTsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDAwMzQzZmM3MDAwMDAwMDAwMTE0NTk4YjciO319",
15+
"title":"Block backdoor parameter in payload set to mybackdoor and user agent containing some_backdoor_agent.",
16+
"rule_closure": {
17+
"opis": "QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjM2MDp7QHN2aDRPUzFTS0Rja1MrK3dYSldTRUNkeVY1dW1jdk9mRG1MOVBhN1AzOUU9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MTkwOiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICByZXR1cm4gaXNzZXQoJF9QT1NUWydiYWNrZG9vciddKSAmJiAkX1BPU1RbJ2JhY2tkb29yJ10gPT0gJ215YmFja2Rvb3InICYmIFxzdHJpcG9zKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSwgJ3NvbWVfYmFja2Rvb3JfYWdlbnQnKSAhPT0gZmFsc2U7DQp9IjtzOjU6InNjb3BlIjtOO3M6NDoidGhpcyI7TjtzOjQ6InNlbGYiO3M6MzI6IjAwMDAwMDAwMGE0MzRhZDAwMDAwMDAwMDI1N2E3NzhhIjt9fQ==",
18+
"laravel": "Tzo0NzoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjE6e3M6MTI6InNlcmlhbGl6YWJsZSI7Tzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXFNpZ25lZCI6Mjp7czoxMjoic2VyaWFsaXphYmxlIjtzOjM2NjoiTzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXE5hdGl2ZSI6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MTkwOiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICByZXR1cm4gaXNzZXQoJF9QT1NUWydiYWNrZG9vciddKSAmJiAkX1BPU1RbJ2JhY2tkb29yJ10gPT0gJ215YmFja2Rvb3InICYmIFxzdHJpcG9zKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSwgJ3NvbWVfYmFja2Rvb3JfYWdlbnQnKSAhPT0gZmFsc2U7DQp9IjtzOjU6InNjb3BlIjtOO3M6NDoidGhpcyI7TjtzOjQ6InNlbGYiO3M6MzI6IjAwMDAwMDAwMGE0MzRhZDAwMDAwMDAwMDI1N2E3NzhhIjt9IjtzOjQ6Imhhc2giO3M6NDQ6ImhjOEZ4VWx3cm5SK2FPZnlpNE1qVFJCTUphaVBtN2JsM29ZRzJqc05hYVE9Ijt9fQ=="
19+
},
1220
"cat":"TEST",
1321
"type":"BLOCK",
1422
"type_params":null
1523
},
1624
{
1725
"id":3,
1826
"title":"Block a base64 json encoded request with the user_role parameter set to administrator",
19-
"rule":"QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjQ0MDp7QElQZmkzenkwekxKZnpEUE10b3g3aloyNXlkQkczTStBWHFGcVVjaVBtejA9LmE6NTp7czozOiJ1c2UiO2E6MTp7czoyOiJpcCI7czo0OiJ0ZXN0Ijt9czo4OiJmdW5jdGlvbiI7czoyNTA6ImZ1bmN0aW9uICgpIHVzZSAoJGlwKXsNCiAgICBpZighaXNzZXQoJF9QT1NUWydwYXlsb2FkJ10pKXsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCg0KICAgICRwYXlsb2FkID0gXGpzb25fZGVjb2RlKFxiYXNlNjRfZGVjb2RlKCRfUE9TVFsncGF5bG9hZCddKSwgdHJ1ZSk7DQogICAgcmV0dXJuIGlzc2V0KCRwYXlsb2FkWyd1c2VyX3JvbGUnXSkgJiYgJHBheWxvYWRbJ3VzZXJfcm9sZSddID09ICdhZG1pbmlzdHJhdG9yJzsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDA2OGFlMzAwYjAwMDAwMDAwNWY0NDg5OTIiO319",
27+
"rule_closure": {
28+
"opis": "QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjQwODp7QForMEVxSlYxMTFOd1pEZFpYbmx5bk9yeEMwWC9XNm5YVlBWRklJWWhxRmM9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MjM4OiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICBpZighaXNzZXQoJF9QT1NUWydwYXlsb2FkJ10pKXsgcmV0dXJuIGZhbHNlOyB9CiRwYXlsb2FkID0gXGpzb25fZGVjb2RlKFxiYXNlNjRfZGVjb2RlKCRfUE9TVFsncGF5bG9hZCddKSwgdHJ1ZSk7CnJldHVybiBpc3NldCgkcGF5bG9hZFsndXNlcl9yb2xlJ10pICYmICRwYXlsb2FkWyd1c2VyX3JvbGUnXSA9PSAnYWRtaW5pc3RyYXRvcic7DQp9IjtzOjU6InNjb3BlIjtOO3M6NDoidGhpcyI7TjtzOjQ6InNlbGYiO3M6MzI6IjAwMDAwMDAwMjQwOTUzMDkwMDAwMDAwMDc1NDQwYjJlIjt9fQ==",
29+
"laravel": "Tzo0NzoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjE6e3M6MTI6InNlcmlhbGl6YWJsZSI7Tzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXFNpZ25lZCI6Mjp7czoxMjoic2VyaWFsaXphYmxlIjtzOjQxNDoiTzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXE5hdGl2ZSI6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MjM4OiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICBpZighaXNzZXQoJF9QT1NUWydwYXlsb2FkJ10pKXsgcmV0dXJuIGZhbHNlOyB9CiRwYXlsb2FkID0gXGpzb25fZGVjb2RlKFxiYXNlNjRfZGVjb2RlKCRfUE9TVFsncGF5bG9hZCddKSwgdHJ1ZSk7CnJldHVybiBpc3NldCgkcGF5bG9hZFsndXNlcl9yb2xlJ10pICYmICRwYXlsb2FkWyd1c2VyX3JvbGUnXSA9PSAnYWRtaW5pc3RyYXRvcic7DQp9IjtzOjU6InNjb3BlIjtOO3M6NDoidGhpcyI7TjtzOjQ6InNlbGYiO3M6MzI6IjAwMDAwMDAwMjQwOTUzMDkwMDAwMDAwMDc1NDQwYjJlIjt9IjtzOjQ6Imhhc2giO3M6NDQ6ImFtcVYvcjBhblFUb0tKMFcvNW42cU1WRUU1VWhSZDc1L3pRczZRU0ZLbTg9Ijt9fQ=="
30+
},
2031
"cat":"TEST",
2132
"type":"BLOCK",
2233
"type_params":null

tests/data/Whitelist.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
[
22
{
33
"id":1,
4-
"title":"Whitelist IP 1.2.3.4 or 5.5.5.5","rule":"QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjI2Mjp7QGQ3TnRBTzM0VkpHRjQ4NkRBd2V3aDk3WnZET2tWSVJvdlRlalF4VVBCRFk9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6OTM6ImZ1bmN0aW9uICgpIHsNCiAgICByZXR1cm4gXGluX2FycmF5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddLCBhcnJheSgnMS4yLjMuNCcsICc1LjUuNS41JykpOw0KfSI7czo1OiJzY29wZSI7TjtzOjQ6InRoaXMiO047czo0OiJzZWxmIjtzOjMyOiIwMDAwMDAwMDZkMzk4NDRlMDAwMDAwMDAzMjNmYTZiZSI7fX0",
4+
"title":"Whitelist IP 1.2.3.4 or 5.5.5.5",
5+
"rule_closure": {
6+
"opis": "QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjI4Njp7QFArODNQUkRxb3pHWksrL3lzWTJJWWFrVWlkbG1rSkw5a1FvYW43MFo2TWc9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MTE2OiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICByZXR1cm4gXGluX2FycmF5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddLCBhcnJheSgnMS4yLjMuNCcsICc1LjUuNS41JykpOw0KfSI7czo1OiJzY29wZSI7TjtzOjQ6InRoaXMiO047czo0OiJzZWxmIjtzOjMyOiIwMDAwMDAwMDJiOWVkZjZjMDAwMDAwMDAxZmM3YzA4YiI7fX0=",
7+
"laravel": "Tzo0NzoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjE6e3M6MTI6InNlcmlhbGl6YWJsZSI7Tzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXFNpZ25lZCI6Mjp7czoxMjoic2VyaWFsaXphYmxlIjtzOjI5MjoiTzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXE5hdGl2ZSI6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MTE2OiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICByZXR1cm4gXGluX2FycmF5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddLCBhcnJheSgnMS4yLjMuNCcsICc1LjUuNS41JykpOw0KfSI7czo1OiJzY29wZSI7TjtzOjQ6InRoaXMiO047czo0OiJzZWxmIjtzOjMyOiIwMDAwMDAwMDJiOWVkZjZjMDAwMDAwMDAxZmM3YzA4YiI7fSI7czo0OiJoYXNoIjtzOjQ0OiJ1SHcreEh5OVhnYjFaZm9DbWdRTzVFVWZHY2RvRlFuaU8vZ3hwZTdHc1hVPSI7fX0="
8+
},
59
"type":"WHITELIST"
610
},
711
{
812
"id":2,
9-
"title":"Whitelist if POST request action parameter is set to wp_heartbeat","rule":"QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjI2MDp7QGpRS3c5Y3M2TUhJNk9LV0Q2UHZiYlF3MmYvbVdUdEpBRDJzaGF2Z2NTdUE9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6OTE6ImZ1bmN0aW9uICgpIHsNCiAgICByZXR1cm4gaXNzZXQoJF9QT1NUWydhY3Rpb24nXSkgJiYgJF9QT1NUWydhY3Rpb24nXSA9PSAnd3BfaGVhcnRiZWF0JzsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDA0NGVmZTFkYjAwMDAwMDAwNjkyODg1MTgiO319",
13+
"title":"Whitelist if POST request action parameter is set to wp_heartbeat",
14+
"rule_closure": {
15+
"opis": "QzozMjoiT3Bpc1xDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjI4NDp7QDFVblh5cXFPdVhRa0RiakNLTU5jVlM0SkhtcmRxdjVheG9md0ltVGI5RmM9LmE6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MTE0OiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICByZXR1cm4gaXNzZXQoJF9QT1NUWydhY3Rpb24nXSkgJiYgJF9QT1NUWydhY3Rpb24nXSA9PSAnd3BfaGVhcnRiZWF0JzsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDA3NzQ4NWY3MzAwMDAwMDAwMWEzZDI5MTUiO319",
16+
"laravel": "Tzo0NzoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6YWJsZUNsb3N1cmUiOjE6e3M6MTI6InNlcmlhbGl6YWJsZSI7Tzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXFNpZ25lZCI6Mjp7czoxMjoic2VyaWFsaXphYmxlIjtzOjI5MDoiTzo0NjoiTGFyYXZlbFxTZXJpYWxpemFibGVDbG9zdXJlXFNlcmlhbGl6ZXJzXE5hdGl2ZSI6NTp7czozOiJ1c2UiO2E6MDp7fXM6ODoiZnVuY3Rpb24iO3M6MTE0OiJmdW5jdGlvbiAoJGlwLCAkZGF0YXNldCwgJHJlcXVlc3QpIHsNCiAgICByZXR1cm4gaXNzZXQoJF9QT1NUWydhY3Rpb24nXSkgJiYgJF9QT1NUWydhY3Rpb24nXSA9PSAnd3BfaGVhcnRiZWF0JzsNCn0iO3M6NToic2NvcGUiO047czo0OiJ0aGlzIjtOO3M6NDoic2VsZiI7czozMjoiMDAwMDAwMDA3NzQ4NWY3MzAwMDAwMDAwMWEzZDI5MTUiO30iO3M6NDoiaGFzaCI7czo0NDoiNlR2SitkVEIzTElReXF2RFg1SE1oOVRNSm5nV2NnZzlyNStoejJ6TGwyYz0iO319"
17+
},
1018
"type":"WHITELIST"
1119
}
1220
]

0 commit comments

Comments
 (0)