Skip to content

Commit a2e87fe

Browse files
Nested params are masked (#4)
1 parent 68d0f27 commit a2e87fe

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/ParamsFilter.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,13 @@ public function init()
2727

2828
$this->paramsFilter = function ($notice) {
2929
foreach ($this->params as $param) {
30-
if (isset($notice['params'][$param])) {
31-
$notice['params'][$param] = $this->replacement;
30+
$paramsToReplace = $this->explodeParams($param);
31+
32+
if ((count($paramsToReplace) === 1) && isset($notice['params'][$paramsToReplace[0]])) {
33+
$notice['params'][$paramsToReplace[0]] = $this->replacement;
34+
}
35+
if ((count($paramsToReplace) === 2) && isset($notice['params'][$paramsToReplace[0]][$paramsToReplace[1]])) {
36+
$notice['params'][$paramsToReplace[0]][$paramsToReplace[1]] = $this->replacement;
3237
}
3338
}
3439
return $notice;
@@ -45,4 +50,20 @@ public function getParamsFilter()
4550
return $this->paramsFilter;
4651
}
4752

53+
/**
54+
* @param string $param
55+
* @return string[]
56+
*/
57+
private function explodeParams(string $param): array
58+
{
59+
$superglobals = ['_GET.', '_POST.', '_COOKIE.', '_SERVER.', '_ENV.', '_FILES.'];
60+
foreach ($superglobals as $superglobal) {
61+
if (strpos($param, $superglobal) === 0) {
62+
$param = str_replace($superglobal, "", $param);
63+
return explode(".", $param);
64+
}
65+
}
66+
return [$param];
67+
}
68+
4869
}

0 commit comments

Comments
 (0)