File tree Expand file tree Collapse file tree 2 files changed +19
-15
lines changed Expand file tree Collapse file tree 2 files changed +19
-15
lines changed Original file line number Diff line number Diff line change 5
5
## [ v1.2.3 (2025-06-16)] ( https://github.com/onlime/laravel-http-client-global-logger/compare/v1.2.2...v1.2.3 )
6
6
7
7
- [ Security] Body key obfuscation (` obfuscate.body_keys ` config) is now also applied to response body, both for JSON or form-styled content.
8
+ - Refactored ` obfuscateBody() ` for performance to run single regex replacements on message body.
8
9
9
10
## [ v1.2.2 (2025-06-16)] ( https://github.com/onlime/laravel-http-client-global-logger/compare/v1.2.1...v1.2.2 )
10
11
Original file line number Diff line number Diff line change @@ -16,21 +16,24 @@ protected function obfuscateBody(string $message): string
16
16
{
17
17
$ replacement = config ('http-client-global-logger.obfuscate.replacement ' );
18
18
19
- foreach (config ('http-client-global-logger.obfuscate.body_keys ' ) as $ key ) {
20
- $ quoted = preg_quote ($ key , '/ ' );
21
- // JSON-style: "key":"value"
22
- $ message = preg_replace (
23
- '/(?<=" ' .$ quoted .'":")[^"]*(?=")/mU ' ,
24
- $ replacement ,
25
- $ message
26
- );
27
- // form-style: key=value (until & or end)
28
- $ message = preg_replace (
29
- '/(?<=\b ' . $ quoted .'=)[^&]*(?=&|$)/ ' ,
30
- $ replacement ,
31
- $ message
32
- );
33
- }
19
+ // Build regex pattern for keys to obfuscate
20
+ $ keysPattern = implode ('| ' , array_map (
21
+ fn (string $ key ) => preg_quote ($ key , '/ ' ),
22
+ config ('http-client-global-logger.obfuscate.body_keys ' )
23
+ ));
24
+
25
+ // JSON-style: "(key1|key2)": "someValue"
26
+ $ message = preg_replace (
27
+ '/(?<="(?: ' . $ keysPattern . ')":")[^"]*(?=")/mU ' ,
28
+ $ replacement ,
29
+ $ message
30
+ );
31
+ // form-style: key1=someValue& or key2=someValue$
32
+ $ message = preg_replace (
33
+ '/(?<=\b(?: ' . $ keysPattern .')=)[^&]*(?=&|$)/ ' ,
34
+ $ replacement ,
35
+ $ message
36
+ );
34
37
35
38
return $ message ;
36
39
}
You can’t perform that action at this time.
0 commit comments