@glubean/redaction 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/defaults.d.ts +0 -6
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +193 -24
- package/dist/defaults.js.map +1 -1
- package/dist/engine.d.ts +8 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +27 -0
- package/dist/engine.js.map +1 -1
- package/dist/handlers.d.ts +22 -2
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +337 -56
- package/dist/handlers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,8 +84,9 @@ Built-in handlers:
|
|
|
84
84
|
|---------|---------|
|
|
85
85
|
| `json` | Recursive JSON object/array walker |
|
|
86
86
|
| `raw-string` | Value-pattern matching on plain strings |
|
|
87
|
-
| `url-query` | Parse URL, redact query params, serialize back |
|
|
88
|
-
| `headers` | Header map with cookie/set-cookie parsing |
|
|
87
|
+
| `url-query` | Parse URL (absolute or relative), redact query params, serialize back |
|
|
88
|
+
| `headers` | Header map with cookie/set-cookie parsing (cookie values masked structurally) |
|
|
89
|
+
| `body` | HTTP body: object → JSON walk; string → JSON-as-text / form-urlencoded / value-pattern |
|
|
89
90
|
|
|
90
91
|
### Plugins
|
|
91
92
|
|
package/dist/defaults.d.ts
CHANGED
|
@@ -7,12 +7,6 @@
|
|
|
7
7
|
* They use the same shape as external plugin declarations.
|
|
8
8
|
*/
|
|
9
9
|
import type { GlobalRules, RedactionConfig, RedactionScopeDeclaration } from "./types.js";
|
|
10
|
-
/**
|
|
11
|
-
* Built-in scope declarations for HTTP, log, error, assertion, and step events.
|
|
12
|
-
*
|
|
13
|
-
* These are the "http-plugin" built-in contributor — they use the same
|
|
14
|
-
* declaration model as any external plugin.
|
|
15
|
-
*/
|
|
16
10
|
export declare const BUILTIN_SCOPES: RedactionScopeDeclaration[];
|
|
17
11
|
/**
|
|
18
12
|
* Regex source strings for built-in value-level patterns.
|
package/dist/defaults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EAC1B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAyDpB,eAAO,MAAM,cAAc,EAAE,yBAAyB,EAkUrD,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,MAAM,EACN;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkClC,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAalC,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,eAO5B,CAAC"}
|
package/dist/defaults.js
CHANGED
|
@@ -13,6 +13,52 @@
|
|
|
13
13
|
* These are the "http-plugin" built-in contributor — they use the same
|
|
14
14
|
* declaration model as any external plugin.
|
|
15
15
|
*/
|
|
16
|
+
/**
|
|
17
|
+
* Shared credential key set for the HTTP trace scopes (headers/body/query/
|
|
18
|
+
* metadata/target/name). One source of truth so a scope can't silently omit a
|
|
19
|
+
* baseline alias (codex GLU-104 R6 P1: `credential`/`credentials`/`ssh_key`/
|
|
20
|
+
* `bearer` were missing from the per-scope lists and leaked). Matching is
|
|
21
|
+
* case-insensitive SUBSTRING (sensitiveKeysPlugin), so compounds are covered.
|
|
22
|
+
*
|
|
23
|
+
* Deliberately EXCLUDES bare `auth`: as a substring it matches — and (in event
|
|
24
|
+
* scopes, which nuke a sensitive key's whole subtree) DESTROYS — common
|
|
25
|
+
* non-secret fields like `author`, `authority`, `authored`, `unauthorized`.
|
|
26
|
+
* Real auth credentials are covered by `authorization` / the `auth_token`
|
|
27
|
+
* compounds / the `bearer` + `jwt` value-patterns instead; a bare field named
|
|
28
|
+
* exactly `auth` holding an opaque value is the accepted residual (documented,
|
|
29
|
+
* same class as the `token`/`tokenCount` tradeoff — a redaction library must
|
|
30
|
+
* not corrupt `author` to catch it).
|
|
31
|
+
*/
|
|
32
|
+
const CREDENTIAL_KEYS = [
|
|
33
|
+
"authorization",
|
|
34
|
+
"proxy-authorization",
|
|
35
|
+
"bearer",
|
|
36
|
+
"authtoken",
|
|
37
|
+
"auth_token",
|
|
38
|
+
"auth-token",
|
|
39
|
+
"token",
|
|
40
|
+
"access_token",
|
|
41
|
+
"refresh_token",
|
|
42
|
+
"id_token",
|
|
43
|
+
"session_token",
|
|
44
|
+
"secret",
|
|
45
|
+
"client_secret",
|
|
46
|
+
"client-secret",
|
|
47
|
+
"password",
|
|
48
|
+
"passwd",
|
|
49
|
+
"api_key",
|
|
50
|
+
"api-key",
|
|
51
|
+
"apikey",
|
|
52
|
+
"x-api-key",
|
|
53
|
+
"credential",
|
|
54
|
+
"credentials",
|
|
55
|
+
"private_key",
|
|
56
|
+
"privatekey",
|
|
57
|
+
"private-key",
|
|
58
|
+
"ssh_key",
|
|
59
|
+
"sessionid",
|
|
60
|
+
"session_id",
|
|
61
|
+
];
|
|
16
62
|
export const BUILTIN_SCOPES = [
|
|
17
63
|
{
|
|
18
64
|
id: "http.request.headers",
|
|
@@ -21,7 +67,13 @@ export const BUILTIN_SCOPES = [
|
|
|
21
67
|
target: "data.requestHeaders",
|
|
22
68
|
handler: "headers",
|
|
23
69
|
rules: {
|
|
24
|
-
|
|
70
|
+
// GLU-104: covers standard + non-standard auth/secret headers. Cookie
|
|
71
|
+
// VALUES no longer depend on this list — `headersHandler` masks every
|
|
72
|
+
// `Cookie:` value structurally (a cookie is credential material by
|
|
73
|
+
// default), which fixes opaquely-named session cookies AND let us drop
|
|
74
|
+
// the over-broad `sid`/`session` substrings (R1 P2). `cookie` is kept so
|
|
75
|
+
// a `Cookie` header still routes through the structural cookie branch.
|
|
76
|
+
sensitiveKeys: [...CREDENTIAL_KEYS, "cookie"],
|
|
25
77
|
},
|
|
26
78
|
},
|
|
27
79
|
{
|
|
@@ -31,36 +83,61 @@ export const BUILTIN_SCOPES = [
|
|
|
31
83
|
target: "data.url",
|
|
32
84
|
handler: "url-query",
|
|
33
85
|
rules: {
|
|
34
|
-
sensitiveKeys: [
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
86
|
+
sensitiveKeys: [...CREDENTIAL_KEYS],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: "http.request.requestedUrl",
|
|
91
|
+
name: "HTTP requested (relative) URL",
|
|
92
|
+
event: "trace",
|
|
93
|
+
// GLU-104 (codex R3 P2): a trace can carry `requestedUrl` — the author's
|
|
94
|
+
// ORIGINAL relative URL (`/login?token=…`), captured before resolution.
|
|
95
|
+
// `data.url` only covers the resolved absolute URL, so without this a
|
|
96
|
+
// secret in a relative URL's query leaked. `url-query` now parses relative
|
|
97
|
+
// URLs (synthetic base).
|
|
98
|
+
target: "data.requestedUrl",
|
|
99
|
+
handler: "url-query",
|
|
100
|
+
rules: {
|
|
101
|
+
sensitiveKeys: [...CREDENTIAL_KEYS],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "http.target",
|
|
106
|
+
name: "Trace target",
|
|
107
|
+
event: "trace",
|
|
108
|
+
// GLU-104 (codex R5 P1): browser network traces set `target`/`name` to
|
|
109
|
+
// `${method} ${shortPath(url)}` where shortPath includes `u.search`
|
|
110
|
+
// (packages/browser/src/network.ts), so a query secret leaks via these
|
|
111
|
+
// fields even though `url` is masked. `url-query` splits on `?`, so the
|
|
112
|
+
// `${method} ${path}` prefix is preserved and only the query is redacted;
|
|
113
|
+
// a non-URL target (`get_weather`, `#submit-btn`) is value-pattern-scanned.
|
|
114
|
+
target: "data.target",
|
|
115
|
+
handler: "url-query",
|
|
116
|
+
rules: {
|
|
117
|
+
sensitiveKeys: [...CREDENTIAL_KEYS],
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: "http.name",
|
|
122
|
+
name: "Trace name",
|
|
123
|
+
event: "trace",
|
|
124
|
+
target: "data.name",
|
|
125
|
+
handler: "url-query",
|
|
126
|
+
rules: {
|
|
127
|
+
sensitiveKeys: [...CREDENTIAL_KEYS],
|
|
44
128
|
},
|
|
45
129
|
},
|
|
46
130
|
{
|
|
47
131
|
id: "http.request.body",
|
|
48
132
|
name: "HTTP request body",
|
|
49
133
|
event: "trace",
|
|
134
|
+
// GLU-104: `body` (not `json`) so a NON-JSON request body captured as a
|
|
135
|
+
// raw string — a form-urlencoded login `password=hunter2&client_secret=x`
|
|
136
|
+
// — is redacted by param name, not just value-pattern-scanned.
|
|
50
137
|
target: "data.requestBody",
|
|
51
|
-
handler: "
|
|
138
|
+
handler: "body",
|
|
52
139
|
rules: {
|
|
53
|
-
sensitiveKeys: [
|
|
54
|
-
"password",
|
|
55
|
-
"passwd",
|
|
56
|
-
"secret",
|
|
57
|
-
"token",
|
|
58
|
-
"client_secret",
|
|
59
|
-
"client-secret",
|
|
60
|
-
"private_key",
|
|
61
|
-
"privatekey",
|
|
62
|
-
"private-key",
|
|
63
|
-
],
|
|
140
|
+
sensitiveKeys: [...CREDENTIAL_KEYS],
|
|
64
141
|
},
|
|
65
142
|
},
|
|
66
143
|
{
|
|
@@ -70,15 +147,63 @@ export const BUILTIN_SCOPES = [
|
|
|
70
147
|
target: "data.responseHeaders",
|
|
71
148
|
handler: "headers",
|
|
72
149
|
rules: {
|
|
73
|
-
|
|
150
|
+
// GLU-104: `Set-Cookie` VALUES are masked structurally by
|
|
151
|
+
// `headersHandler` (a minted session cookie is credential material, its
|
|
152
|
+
// name arbitrary) — no longer name-list-dependent, so the over-broad
|
|
153
|
+
// `sid`/`session` substrings are gone (codex R1 P2). These keys still
|
|
154
|
+
// cover plain sensitive response headers (`X-Auth-Token`, ...).
|
|
155
|
+
sensitiveKeys: [...CREDENTIAL_KEYS, "set-cookie", "cookie"],
|
|
74
156
|
},
|
|
75
157
|
},
|
|
76
158
|
{
|
|
77
159
|
id: "http.response.body",
|
|
78
160
|
name: "HTTP response body",
|
|
79
161
|
event: "trace",
|
|
162
|
+
// GLU-104: `body` handler (see request body) + a real sensitiveKeys list.
|
|
163
|
+
// Previously this scope declared NO sensitiveKeys and used `json`, so only
|
|
164
|
+
// global value-PATTERN plugins ran — a plain-string secret under a
|
|
165
|
+
// recognizably-named key (`{"token":"sk_live_..."}`, `{"access_token":...}`)
|
|
166
|
+
// passed through whenever its value matched no pattern (confirmed
|
|
167
|
+
// empirically). A login/refresh response carries the same secret shapes a
|
|
168
|
+
// request does — this list mirrors `http.request.body` (which has carried
|
|
169
|
+
// `token` since before GLU-104), so request/response redact symmetrically.
|
|
170
|
+
//
|
|
171
|
+
// Note on `token`: sensitive-key matching is substring (sensitiveKeysPlugin),
|
|
172
|
+
// so `token` also masks compound fields like `tokenCount`/`tokensUsed`
|
|
173
|
+
// (codex R4). This is INTENTIONAL and conservative for a redaction library:
|
|
174
|
+
// over-masking a usage counter in a redacted debug/upload view is strictly
|
|
175
|
+
// preferable to leaking an opaque `{"token":"<credential>"}` whose value
|
|
176
|
+
// matches no pattern. A precise (suffix/word-boundary) matcher would be a
|
|
177
|
+
// general redaction-engine change across all consumers, out of scope here.
|
|
80
178
|
target: "data.responseBody",
|
|
179
|
+
handler: "body",
|
|
180
|
+
rules: {
|
|
181
|
+
sensitiveKeys: [...CREDENTIAL_KEYS],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
id: "http.metadata",
|
|
186
|
+
name: "Trace metadata",
|
|
187
|
+
event: "trace",
|
|
188
|
+
// GLU-104 (codex R1 P1): the generic `Trace.metadata` field carries
|
|
189
|
+
// protocol-specific auth material — notably gRPC call metadata under
|
|
190
|
+
// `requestMetadata`/`responseMetadata` (packages/grpc emits
|
|
191
|
+
// `data.metadata.requestMetadata.authorization`). The `@glubean/grpc`
|
|
192
|
+
// plugin declares its own `grpc.metadata` scope, but that's only compiled
|
|
193
|
+
// when a caller passes it as `pluginScopes` — the MCP local-trace path
|
|
194
|
+
// compiles BUILTIN_SCOPES only, so without a baseline metadata scope gRPC
|
|
195
|
+
// auth tokens flowed into `glubean_run_local_file` output. The `json`
|
|
196
|
+
// handler recurses into the nested metadata objects; non-secret siblings
|
|
197
|
+
// (`service`/`method`/`peer`) match no key and are preserved.
|
|
198
|
+
target: "data.metadata",
|
|
81
199
|
handler: "json",
|
|
200
|
+
rules: {
|
|
201
|
+
// metadata can carry either shape (gRPC auth headers OR credential-valued
|
|
202
|
+
// fields), so it uses the full shared credential set + `cookie`. codex
|
|
203
|
+
// R4 P2 (`password`/`private_key`/`sessionid` missing) and R6 P1
|
|
204
|
+
// (`credential`/`ssh_key`/`bearer` missing) are both covered now.
|
|
205
|
+
sensitiveKeys: [...CREDENTIAL_KEYS, "cookie"],
|
|
206
|
+
},
|
|
82
207
|
},
|
|
83
208
|
{
|
|
84
209
|
id: "log.message",
|
|
@@ -212,6 +337,50 @@ export const BUILTIN_SCOPES = [
|
|
|
212
337
|
target: "name",
|
|
213
338
|
handler: "raw-string",
|
|
214
339
|
},
|
|
340
|
+
{
|
|
341
|
+
// GLU-105: `browser:download` evidence (packages/browser/src/page.ts) is
|
|
342
|
+
// emitted via ctx.event as an ExecutionEvent of type "event" wrapping
|
|
343
|
+
// { type, data:{ url, … } }. A download can start from a signed/
|
|
344
|
+
// credentialed URL (an S3 pre-signed link: `?X-Amz-Signature=…` /
|
|
345
|
+
// `?token=…`), which would otherwise persist to the local result JSON +
|
|
346
|
+
// upload in plaintext. url-query masks only the sensitive query params.
|
|
347
|
+
id: "browser.download.url",
|
|
348
|
+
name: "Browser download URL query",
|
|
349
|
+
event: "event",
|
|
350
|
+
target: "data.data.url",
|
|
351
|
+
handler: "url-query",
|
|
352
|
+
rules: {
|
|
353
|
+
sensitiveKeys: [
|
|
354
|
+
...CREDENTIAL_KEYS,
|
|
355
|
+
"signature",
|
|
356
|
+
"sig",
|
|
357
|
+
"x-amz-signature",
|
|
358
|
+
"x-amz-credential",
|
|
359
|
+
"x-amz-security-token",
|
|
360
|
+
],
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
// GLU-105: `page.waitForDownload()` (packages/browser/src/page.ts) emits an
|
|
365
|
+
// action whose `detail.url` copies the same download URL as the
|
|
366
|
+
// browser:download event above — redact its query the same way so the
|
|
367
|
+
// action sink doesn't leak what the event sink masks.
|
|
368
|
+
id: "browser.waitForDownload.url",
|
|
369
|
+
name: "Browser waitForDownload action URL query",
|
|
370
|
+
event: "action",
|
|
371
|
+
target: "data.detail.url",
|
|
372
|
+
handler: "url-query",
|
|
373
|
+
rules: {
|
|
374
|
+
sensitiveKeys: [
|
|
375
|
+
...CREDENTIAL_KEYS,
|
|
376
|
+
"signature",
|
|
377
|
+
"sig",
|
|
378
|
+
"x-amz-signature",
|
|
379
|
+
"x-amz-credential",
|
|
380
|
+
"x-amz-security-token",
|
|
381
|
+
],
|
|
382
|
+
},
|
|
383
|
+
},
|
|
215
384
|
];
|
|
216
385
|
// ── Built-in pattern source strings ──────────────────────────────────────────
|
|
217
386
|
/**
|
package/dist/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC;IACzD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE;YACL,aAAa,EAAE,CAAC,eAAe,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts
CHANGED
|
@@ -74,6 +74,14 @@ export declare class RedactionEngine {
|
|
|
74
74
|
* @param ctx Optional scope context for plugin dispatch.
|
|
75
75
|
*/
|
|
76
76
|
redact(value: unknown, ctx?: ScopeContext): RedactionResult;
|
|
77
|
+
/**
|
|
78
|
+
* Mask a scalar as fully sensitive, honoring the configured replacement
|
|
79
|
+
* format. Mirrors the key-level masking the walker applies to a value under
|
|
80
|
+
* a sensitive key (`genericPartialMask` for "partial", `[REDACTED]`
|
|
81
|
+
* otherwise). Used by handlers that decide sensitivity structurally rather
|
|
82
|
+
* than via key/pattern plugins (e.g. cookie values under a Cookie header).
|
|
83
|
+
*/
|
|
84
|
+
maskValue(value: string): string;
|
|
77
85
|
private walkValue;
|
|
78
86
|
private walkObject;
|
|
79
87
|
/**
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,0BAA0B;IAC1B,iBAAiB,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAAyB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAc;gBAE5C,OAAO,EAAE,sBAAsB;IAQ3C;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,eAAe;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,0BAA0B;IAC1B,iBAAiB,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAAyB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAc;gBAE5C,OAAO,EAAE,sBAAsB;IAQ3C;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,eAAe;IAW3D;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQhC,OAAO,CAAC,SAAS;IAiDjB,OAAO,CAAC,UAAU;IAmHlB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,UAAU;CA4CnB"}
|
package/dist/engine.js
CHANGED
|
@@ -54,6 +54,18 @@ export class RedactionEngine {
|
|
|
54
54
|
details,
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Mask a scalar as fully sensitive, honoring the configured replacement
|
|
59
|
+
* format. Mirrors the key-level masking the walker applies to a value under
|
|
60
|
+
* a sensitive key (`genericPartialMask` for "partial", `[REDACTED]`
|
|
61
|
+
* otherwise). Used by handlers that decide sensitivity structurally rather
|
|
62
|
+
* than via key/pattern plugins (e.g. cookie values under a Cookie header).
|
|
63
|
+
*/
|
|
64
|
+
maskValue(value) {
|
|
65
|
+
return this.replacementFormat === "partial"
|
|
66
|
+
? genericPartialMask(value)
|
|
67
|
+
: "[REDACTED]";
|
|
68
|
+
}
|
|
57
69
|
// ── Private recursive walker ──────────────────────────────────────────
|
|
58
70
|
walkValue(value, scope, path, details, depth) {
|
|
59
71
|
if (depth > this.maxDepth) {
|
|
@@ -137,6 +149,21 @@ export class RedactionEngine {
|
|
|
137
149
|
}
|
|
138
150
|
continue;
|
|
139
151
|
}
|
|
152
|
+
// GLU-123 codex round: in schema-preserving mode a BOOLEAN scalar
|
|
153
|
+
// under a sensitive key is left untouched. `true`/`false` is a valid
|
|
154
|
+
// JSON-Schema node on its own (`properties.password: true` means
|
|
155
|
+
// "any value accepted") — masking it to a redaction STRING corrupts
|
|
156
|
+
// the schema's type, exactly the corruption `sensitiveKeyRecurse`
|
|
157
|
+
// exists to prevent for objects/arrays. A boolean also carries no
|
|
158
|
+
// real secret entropy (1 bit), so skipping it costs nothing
|
|
159
|
+
// security-wise. Only applies in `sensitiveKeyRecurse` mode — the
|
|
160
|
+
// non-recurse (event) path still nukes sensitive-keyed booleans
|
|
161
|
+
// wholesale, unchanged.
|
|
162
|
+
if (this.sensitiveKeyRecurse && typeof value === "boolean") {
|
|
163
|
+
const redacted = this.walkValue(value, scope, keyPath, details, depth + 1);
|
|
164
|
+
result[key] = redacted.value;
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
140
167
|
if (this.replacementFormat === "partial") {
|
|
141
168
|
const str = value === null || value === undefined ? "" : String(value);
|
|
142
169
|
result[key] = genericPartialMask(str);
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmDH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACzB,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5B,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IACT,OAAO,CAAoB;IAC3B,iBAAiB,CAAmC;IACpD,QAAQ,CAAS;IACjB,mBAAmB,CAAU;IAC7B,yBAAyB,CAAc;IAExD,YAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,KAAK,CAAC;QAChE,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,IAAI,IAAI,GAAG,EAAE,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAc,EAAE,GAAkB;QACvC,MAAM,QAAQ,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/B,MAAM,OAAO,GAA+B,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IAED,yEAAyE;IAEjE,SAAS,CACf,KAAc,EACd,KAAa,EACb,IAAc,EACd,OAAmC,EACnC,KAAa;QAEb,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,IAAI,EACJ,KAAK,EACL,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACpB,OAAO,EACP,KAAK,GAAG,CAAC,CACV,CAAC;gBACF,IAAI,MAAM,CAAC,SAAS;oBAAE,SAAS,GAAG,IAAI,CAAC;gBACvC,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CACpB,KAAgC,EAChC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,CACN,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAEO,UAAU,CAChB,GAA4B,EAC5B,KAAa,EACb,IAAc,EACd,OAAmC,EACnC,KAAa;QAEb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAE5D,oDAAoD;YACpD,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC5C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACjB,YAAY,GAAG,IAAI,CAAC;wBACpB,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;wBAC5B,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,qEAAqE;gBACrE,+DAA+D;gBAC/D,EAAE;gBACF,uEAAuE;gBACvE,sEAAsE;gBACtE,6DAA6D;gBAC7D,EAAE;gBACF,sEAAsE;gBACtE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,mEAAmE;gBACnE,mEAAmE;gBACnE,wEAAwE;gBACxE,uEAAuE;gBACvE,mEAAmE;gBACnE,qEAAqE;gBACrE,kEAAkE;gBAClE,mEAAmE;gBACnE,6BAA6B;gBAC7B,MAAM,WAAW,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;gBAChE,IAAI,IAAI,CAAC,mBAAmB,IAAI,WAAW,EAAE,CAAC;oBAC5C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAC/B,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,GAAG,CAAC,EACT,aAAa,CACd,CAAC;wBACF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;wBACtB,IAAI,CAAC,CAAC,SAAS;4BAAE,SAAS,GAAG,IAAI,CAAC;oBACpC,CAAC;yBAAM,CAAC;wBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3E,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;wBAC7B,IAAI,QAAQ,CAAC,SAAS;4BAAE,SAAS,GAAG,IAAI,CAAC;oBAC3C,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,kEAAkE;gBAClE,qEAAqE;gBACrE,iEAAiE;gBACjE,oEAAoE;gBACpE,kEAAkE;gBAClE,kEAAkE;gBAClE,4DAA4D;gBAC5D,kEAAkE;gBAClE,gEAAgE;gBAChE,wBAAwB;gBACxB,IAAI,IAAI,CAAC,mBAAmB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC3E,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBACzC,MAAM,GAAG,GACP,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC7B,CAAC;gBACD,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;oBACvB,MAAM,EAAE,aAAa;oBACrB,QAAQ,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;iBACxD,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,qBAAqB;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,GAAG,CAAC,CACV,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC7B,IAAI,QAAQ,CAAC,SAAS;gBAAE,SAAS,GAAG,IAAI,CAAC;QAC3C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CACxB,GAAc,EACd,KAAa,EACb,IAAc,EACd,OAAmC,EACnC,KAAa,EACb,UAAkB;QAElB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;gBACrF,IAAI,CAAC,CAAC,SAAS;oBAAE,SAAS,GAAG,IAAI,CAAC;gBAClC,OAAO,CAAC,CAAC,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC1C,2DAA2D;gBAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,CAAC,SAAS;oBAAE,SAAS,GAAG,IAAI,CAAC;gBAClC,OAAO,CAAC,CAAC,KAAK,CAAC;YACjB,CAAC;YACD,wDAAwD;YACxD,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtB,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;aAClD,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBACzC,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC,CAAC,YAAY,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9B,CAAC;IAEO,UAAU,CAChB,GAAW,EACX,KAAa,EACb,IAAc,EACd,OAAmC;QAEnC,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,GAAG,GAAqB;YAC5B,KAAK;YACL,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SAClD,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,UAAU;gBAAE,SAAS;YAEjC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,qBAAqB;gBAE1C,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBACzC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC;oBACxD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBAChD,MAAM,GAAG,GAAG,aAAa,MAAM,CAAC,IAAI,GAAG,CAAC;oBACxC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC/C,CAAC;gBAED,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACpB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,QAAQ,EAAE,GAAG;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;CACF"}
|
package/dist/handlers.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* - `raw-string` — value-pattern matching only
|
|
8
8
|
* - `url-query` — parse URL, redact query param names/values, serialize back
|
|
9
9
|
* - `headers` — header map with case-insensitive keys, cookie/set-cookie parsing
|
|
10
|
+
* - `body` — HTTP body: object → json walk; string → form/text/xml redaction
|
|
10
11
|
*/
|
|
11
12
|
import type { RedactionHandler } from "./types.js";
|
|
12
13
|
/**
|
|
@@ -20,10 +21,29 @@ export declare const jsonHandler: RedactionHandler;
|
|
|
20
21
|
*/
|
|
21
22
|
export declare const rawStringHandler: RedactionHandler;
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
24
|
+
* Redacts sensitive params in a URL string — in BOTH the `?query` AND a
|
|
25
|
+
* `#fragment` when the fragment is `k=v`-shaped (OAuth implicit-grant tokens
|
|
26
|
+
* live in the fragment: `#access_token=…`, codex R5 P2).
|
|
27
|
+
*
|
|
28
|
+
* GLU-104 (codex R3/R4/R5): works for ANY URL shape — absolute, relative
|
|
29
|
+
* (`/login?token=…`), query-only (`?token=…`), bare-relative
|
|
30
|
+
* (`todos/1?token=…`), or protocol-relative (`//host/p?token=…`) — WITHOUT a
|
|
31
|
+
* URL parser (which throws on relative shapes and mangled query-only /
|
|
32
|
+
* protocol-relative forms). We operate purely on the ORIGINAL string: split off
|
|
33
|
+
* the `?query` and `#fragment` segments, redact each by key, and splice back so
|
|
34
|
+
* the prefix and non-param structure are preserved. Values are re-encoded only
|
|
35
|
+
* when something was actually redacted; a URL with no sensitive param is
|
|
36
|
+
* returned untouched (path/token-shaped secrets are still value-pattern-scanned
|
|
37
|
+
* via the raw-string fallback).
|
|
25
38
|
*/
|
|
26
39
|
export declare const urlQueryHandler: RedactionHandler;
|
|
40
|
+
/**
|
|
41
|
+
* HTTP body handler. Objects/arrays walk like the `json` handler (key + value
|
|
42
|
+
* plugins); raw strings go through `redactStringBody` (form/text/xml). Use for
|
|
43
|
+
* `data.requestBody` / `data.responseBody`, which the runner captures as EITHER
|
|
44
|
+
* a parsed object (JSON) or a raw string (everything else).
|
|
45
|
+
*/
|
|
46
|
+
export declare const bodyHandler: RedactionHandler;
|
|
27
47
|
/**
|
|
28
48
|
* Handles HTTP header maps with special treatment for cookie headers.
|
|
29
49
|
*
|
package/dist/handlers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAA6D,MAAM,YAAY,CAAC;AAI9G;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,gBAKzB,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAe9B,CAAC;AAuCF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,EAAE,gBAoE7B,CAAC;AA0GF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,gBAWzB,CAAC;AA4BF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,gBA4G5B,CAAC;AAoIF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAM7D,CAAC"}
|
package/dist/handlers.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* - `raw-string` — value-pattern matching only
|
|
8
8
|
* - `url-query` — parse URL, redact query param names/values, serialize back
|
|
9
9
|
* - `headers` — header map with case-insensitive keys, cookie/set-cookie parsing
|
|
10
|
+
* - `body` — HTTP body: object → json walk; string → form/text/xml redaction
|
|
10
11
|
*/
|
|
11
12
|
// ── json handler ─────────────────────────────────────────────────────────────
|
|
12
13
|
/**
|
|
@@ -42,8 +43,51 @@ export const rawStringHandler = {
|
|
|
42
43
|
};
|
|
43
44
|
// ── url-query handler ────────────────────────────────────────────────────────
|
|
44
45
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
46
|
+
* Redact the values of sensitive-named params in a `k=v&k2=v2` param string
|
|
47
|
+
* (a URL query OR an OAuth-implicit fragment). Empty values are left as-is
|
|
48
|
+
* (nothing to hide — avoids `?token=` → `?token=****`, codex R5). Returns the
|
|
49
|
+
* re-encoded param string and whether anything changed.
|
|
50
|
+
*/
|
|
51
|
+
function redactParamString(paramStr, ctx, engine) {
|
|
52
|
+
const entries = [...new URLSearchParams(paramStr).entries()];
|
|
53
|
+
if (entries.length === 0) {
|
|
54
|
+
return { value: paramStr, redacted: false, details: [] };
|
|
55
|
+
}
|
|
56
|
+
let didRedact = false;
|
|
57
|
+
const details = [];
|
|
58
|
+
const out = new URLSearchParams();
|
|
59
|
+
for (const [key, raw] of entries) {
|
|
60
|
+
if (raw === "") {
|
|
61
|
+
out.append(key, ""); // empty value — no secret to mask
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const r = engine.redact({ [key]: raw }, { id: ctx.scopeId, name: ctx.scopeName });
|
|
65
|
+
if (r.redacted) {
|
|
66
|
+
out.append(key, String(r.value[key] ?? raw));
|
|
67
|
+
didRedact = true;
|
|
68
|
+
details.push(...r.details);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
out.append(key, raw);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { value: out.toString(), redacted: didRedact, details };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Redacts sensitive params in a URL string — in BOTH the `?query` AND a
|
|
78
|
+
* `#fragment` when the fragment is `k=v`-shaped (OAuth implicit-grant tokens
|
|
79
|
+
* live in the fragment: `#access_token=…`, codex R5 P2).
|
|
80
|
+
*
|
|
81
|
+
* GLU-104 (codex R3/R4/R5): works for ANY URL shape — absolute, relative
|
|
82
|
+
* (`/login?token=…`), query-only (`?token=…`), bare-relative
|
|
83
|
+
* (`todos/1?token=…`), or protocol-relative (`//host/p?token=…`) — WITHOUT a
|
|
84
|
+
* URL parser (which throws on relative shapes and mangled query-only /
|
|
85
|
+
* protocol-relative forms). We operate purely on the ORIGINAL string: split off
|
|
86
|
+
* the `?query` and `#fragment` segments, redact each by key, and splice back so
|
|
87
|
+
* the prefix and non-param structure are preserved. Values are re-encoded only
|
|
88
|
+
* when something was actually redacted; a URL with no sensitive param is
|
|
89
|
+
* returned untouched (path/token-shaped secrets are still value-pattern-scanned
|
|
90
|
+
* via the raw-string fallback).
|
|
47
91
|
*/
|
|
48
92
|
export const urlQueryHandler = {
|
|
49
93
|
name: "url-query",
|
|
@@ -51,49 +95,173 @@ export const urlQueryHandler = {
|
|
|
51
95
|
if (typeof value !== "string") {
|
|
52
96
|
return { value, redacted: false, details: [] };
|
|
53
97
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
98
|
+
const qIndex = value.indexOf("?");
|
|
99
|
+
const hashIndex = value.indexOf("#");
|
|
100
|
+
const hasQuery = qIndex !== -1 && (hashIndex === -1 || qIndex < hashIndex);
|
|
101
|
+
let prefix = value;
|
|
102
|
+
let queryStr = null;
|
|
103
|
+
let fragStr = null;
|
|
104
|
+
if (hasQuery) {
|
|
105
|
+
prefix = value.slice(0, qIndex);
|
|
106
|
+
const afterQ = value.slice(qIndex + 1);
|
|
107
|
+
const h = afterQ.indexOf("#");
|
|
108
|
+
queryStr = h === -1 ? afterQ : afterQ.slice(0, h);
|
|
109
|
+
if (h !== -1)
|
|
110
|
+
fragStr = afterQ.slice(h + 1);
|
|
57
111
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
112
|
+
else if (hashIndex !== -1) {
|
|
113
|
+
prefix = value.slice(0, hashIndex);
|
|
114
|
+
fragStr = value.slice(hashIndex + 1);
|
|
61
115
|
}
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
116
|
+
// Only a `k=v`-shaped fragment carries params worth key-redaction
|
|
117
|
+
// (`#access_token=…`); a plain anchor (`#section`) is left alone.
|
|
118
|
+
const fragIsParams = fragStr !== null && fragStr.includes("=");
|
|
119
|
+
// Nothing structured to redact by key → value-pattern-scan the whole
|
|
120
|
+
// string (catches a token embedded in the path or a non-param fragment).
|
|
121
|
+
if (!hasQuery && !fragIsParams) {
|
|
122
|
+
return engine.redact(value, { id: ctx.scopeId, name: ctx.scopeName });
|
|
66
123
|
}
|
|
67
124
|
let didRedact = false;
|
|
68
125
|
const details = [];
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
redactedEntries.push([key, String(redacted[key] ?? raw)]);
|
|
126
|
+
let outQuery = queryStr;
|
|
127
|
+
if (hasQuery && queryStr !== null) {
|
|
128
|
+
const rq = redactParamString(queryStr, ctx, engine);
|
|
129
|
+
outQuery = rq.value;
|
|
130
|
+
if (rq.redacted) {
|
|
75
131
|
didRedact = true;
|
|
76
|
-
details.push(...
|
|
132
|
+
details.push(...rq.details);
|
|
77
133
|
}
|
|
78
|
-
|
|
79
|
-
|
|
134
|
+
}
|
|
135
|
+
let outFrag = fragStr;
|
|
136
|
+
if (fragIsParams && fragStr !== null) {
|
|
137
|
+
const rf = redactParamString(fragStr, ctx, engine);
|
|
138
|
+
outFrag = rf.value;
|
|
139
|
+
if (rf.redacted) {
|
|
140
|
+
didRedact = true;
|
|
141
|
+
details.push(...rf.details);
|
|
80
142
|
}
|
|
81
143
|
}
|
|
82
144
|
if (!didRedact) {
|
|
145
|
+
// Nothing sensitive — return the ORIGINAL string untouched.
|
|
83
146
|
return { value, redacted: false, details };
|
|
84
147
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
148
|
+
let result = prefix;
|
|
149
|
+
if (hasQuery)
|
|
150
|
+
result += `?${outQuery ?? ""}`;
|
|
151
|
+
if (fragStr !== null)
|
|
152
|
+
result += `#${outFrag ?? ""}`;
|
|
153
|
+
return { value: result, redacted: true, details };
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
// ── body handler ─────────────────────────────────────────────────────────────
|
|
157
|
+
/**
|
|
158
|
+
* Does this string look like an `application/x-www-form-urlencoded` body —
|
|
159
|
+
* `k=v` or `k=v&k2=v2` with URL-safe-ish keys and no obvious JSON/XML lead-in?
|
|
160
|
+
* Strict on purpose: a false positive would round-trip an arbitrary text body
|
|
161
|
+
* through URLSearchParams and could normalize its encoding. Free-text that
|
|
162
|
+
* merely contains an `=` (`note = 3`, prose, a stack trace) must NOT match.
|
|
163
|
+
*/
|
|
164
|
+
const FORM_URLENCODED_RE = /^[^=&\s]+=[^&]*(?:&[^=&\s]+=[^&]*)*$/;
|
|
165
|
+
function looksLikeFormUrlEncoded(str) {
|
|
166
|
+
const s = str.trim();
|
|
167
|
+
if (!s || s[0] === "{" || s[0] === "[" || s[0] === "<")
|
|
168
|
+
return false;
|
|
169
|
+
return FORM_URLENCODED_RE.test(s);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Redact a NON-object (string) HTTP body captured as raw text by the runner —
|
|
173
|
+
* a form-urlencoded request body, or a `text/*` / `xml` / mislabelled body (the
|
|
174
|
+
* harness only parses `application/json` content-types into objects; everything
|
|
175
|
+
* else stays a string). GLU-104: the plain `json` handler value-pattern-scans a
|
|
176
|
+
* string but never applies KEY-based rules to it, so a form body
|
|
177
|
+
* `password=hunter2` or a JSON body served as `text/plain`
|
|
178
|
+
* (`{"token":"plain"}`) leaked. Here we:
|
|
179
|
+
* 0. if the string parses as a JSON object/array (a body mislabelled as text,
|
|
180
|
+
* or any `content-type` the harness didn't treat as json — codex R2 P2),
|
|
181
|
+
* redact it STRUCTURALLY like a real object body, then re-serialize;
|
|
182
|
+
* 1. otherwise run the value-pattern scan (jwt/bearer/aws/etc) over the whole
|
|
183
|
+
* string;
|
|
184
|
+
* 2. and if it's clearly form-urlencoded, additionally mask the values of
|
|
185
|
+
* sensitive-NAMED params via the same key rules objects get.
|
|
186
|
+
*
|
|
187
|
+
* Residual (documented): a secret under a sensitive element name inside an
|
|
188
|
+
* XML/text body that is neither JSON nor form-urlencoded
|
|
189
|
+
* (`<password>plain</password>`) is only caught if its value matches a
|
|
190
|
+
* value-pattern — generic markup parsing is out of scope.
|
|
191
|
+
*/
|
|
192
|
+
function redactStringBody(raw, ctx, engine) {
|
|
193
|
+
// 0. JSON-as-string: a body captured as text that is actually JSON
|
|
194
|
+
// (mislabelled content-type). Parse and redact structurally so KEY rules
|
|
195
|
+
// apply, not just value patterns. Only attempt for `{`/`[`-led strings so
|
|
196
|
+
// a bare number/quoted-string isn't needlessly reserialized.
|
|
197
|
+
const trimmed = raw.trim();
|
|
198
|
+
if (trimmed && (trimmed[0] === "{" || trimmed[0] === "[")) {
|
|
199
|
+
try {
|
|
200
|
+
const parsed = JSON.parse(trimmed);
|
|
201
|
+
if (parsed !== null && typeof parsed === "object") {
|
|
202
|
+
const r = engine.redact(parsed, { id: ctx.scopeId, name: ctx.scopeName });
|
|
203
|
+
// Only re-serialize when something was actually masked — otherwise
|
|
204
|
+
// return the ORIGINAL raw string so a clean body isn't silently
|
|
205
|
+
// reformatted (whitespace normalized) (codex R3 P3).
|
|
206
|
+
if (!r.redacted) {
|
|
207
|
+
return { value: raw, redacted: false, details: [] };
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
value: JSON.stringify(r.value),
|
|
211
|
+
redacted: true,
|
|
212
|
+
details: r.details,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
89
215
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
216
|
+
catch {
|
|
217
|
+
// Not valid JSON — fall through to string scanning below.
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// 1. Value-pattern scan over the raw string (walkString path).
|
|
221
|
+
const scanned = engine.redact(raw, { id: ctx.scopeId, name: ctx.scopeName });
|
|
222
|
+
let working = typeof scanned.value === "string" ? scanned.value : raw;
|
|
223
|
+
let didRedact = scanned.redacted;
|
|
224
|
+
const details = [...scanned.details];
|
|
225
|
+
// 2. Form-urlencoded: mask sensitive-named param values by key.
|
|
226
|
+
if (looksLikeFormUrlEncoded(working)) {
|
|
227
|
+
const params = new URLSearchParams(working);
|
|
228
|
+
const out = new URLSearchParams();
|
|
229
|
+
let changed = false;
|
|
230
|
+
for (const [key, val] of params.entries()) {
|
|
231
|
+
const r = engine.redact({ [key]: val }, { id: ctx.scopeId, name: ctx.scopeName });
|
|
232
|
+
if (r.redacted) {
|
|
233
|
+
const rv = r.value[key];
|
|
234
|
+
out.append(key, String(rv ?? val));
|
|
235
|
+
changed = true;
|
|
236
|
+
details.push(...r.details);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
out.append(key, val);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (changed) {
|
|
243
|
+
working = out.toString();
|
|
244
|
+
didRedact = true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return { value: working, redacted: didRedact, details };
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* HTTP body handler. Objects/arrays walk like the `json` handler (key + value
|
|
251
|
+
* plugins); raw strings go through `redactStringBody` (form/text/xml). Use for
|
|
252
|
+
* `data.requestBody` / `data.responseBody`, which the runner captures as EITHER
|
|
253
|
+
* a parsed object (JSON) or a raw string (everything else).
|
|
254
|
+
*/
|
|
255
|
+
export const bodyHandler = {
|
|
256
|
+
name: "body",
|
|
257
|
+
process(value, ctx, engine) {
|
|
258
|
+
if (value !== null && typeof value === "object") {
|
|
259
|
+
return engine.redact(value, { id: ctx.scopeId, name: ctx.scopeName });
|
|
260
|
+
}
|
|
261
|
+
if (typeof value === "string") {
|
|
262
|
+
return redactStringBody(value, ctx, engine);
|
|
263
|
+
}
|
|
264
|
+
return { value, redacted: false, details: [] };
|
|
97
265
|
},
|
|
98
266
|
};
|
|
99
267
|
// ── headers handler ──────────────────────────────────────────────────────────
|
|
@@ -140,17 +308,43 @@ export const headersHandler = {
|
|
|
140
308
|
const details = [];
|
|
141
309
|
for (const [headerName, headerValue] of Object.entries(input)) {
|
|
142
310
|
const lower = headerName.toLowerCase();
|
|
143
|
-
// Cookie header: parse into key/value pairs
|
|
311
|
+
// Cookie header: parse into key/value pairs, mask EVERY value.
|
|
312
|
+
// GLU-104: a Cookie header value is credential material by default
|
|
313
|
+
// (session ids, CSRF tokens, auth cookies) and cookie NAMES are
|
|
314
|
+
// arbitrary/opaque — masking selectively by name leaked opaquely-named
|
|
315
|
+
// session cookies (`Cookie: auth=<opaque>` when "auth" wasn't a listed
|
|
316
|
+
// key). Cookie NAMES (structure) are preserved; only values are masked.
|
|
144
317
|
if (lower === "cookie" && typeof headerValue === "string") {
|
|
145
318
|
const parsed = parseCookieHeader(headerValue);
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
319
|
+
const cookieNames = Object.keys(parsed);
|
|
320
|
+
if (cookieNames.length > 0) {
|
|
321
|
+
const masked = {};
|
|
322
|
+
for (const [ck, cv] of Object.entries(parsed)) {
|
|
323
|
+
masked[ck] = maskCookieValue(cv, engine);
|
|
324
|
+
}
|
|
325
|
+
output[headerName] = serializeCookieHeader(masked);
|
|
326
|
+
didRedact = true;
|
|
327
|
+
details.push({
|
|
328
|
+
path: headerName,
|
|
329
|
+
plugin: "cookie",
|
|
330
|
+
original: headerValue,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
else if (headerValue.trim() !== "") {
|
|
334
|
+
// Non-empty but UNPARSEABLE (no `name=value` pair, e.g. a bare
|
|
335
|
+
// opaque token `Cookie: <session-token>`). Structural masking found
|
|
336
|
+
// nothing to key on, so mask the whole value — a Cookie header is a
|
|
337
|
+
// sensitive header by definition and this fails closed (codex R2 P2).
|
|
338
|
+
output[headerName] = maskCookieValue(headerValue, engine);
|
|
152
339
|
didRedact = true;
|
|
153
|
-
details.push(
|
|
340
|
+
details.push({
|
|
341
|
+
path: headerName,
|
|
342
|
+
plugin: "cookie",
|
|
343
|
+
original: headerValue,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
output[headerName] = headerValue;
|
|
154
348
|
}
|
|
155
349
|
continue;
|
|
156
350
|
}
|
|
@@ -170,7 +364,14 @@ export const headersHandler = {
|
|
|
170
364
|
const redactedCookies = [];
|
|
171
365
|
for (const cookie of headerValue) {
|
|
172
366
|
if (typeof cookie !== "string") {
|
|
173
|
-
|
|
367
|
+
// Defensive (codex R5/R6): a malformed/manual trace could put a
|
|
368
|
+
// non-string in a set-cookie array — e.g. a cookie OBJECT
|
|
369
|
+
// `{ name: "sid", value: "<secret>" }` where the secret sits
|
|
370
|
+
// under the non-sensitive key `value`. Key-based redaction misses
|
|
371
|
+
// that; a cookie is sensitive by position, so mask ALL string
|
|
372
|
+
// leaves (structure + non-string scalars preserved).
|
|
373
|
+
redactedCookies.push(maskAllStringLeaves(cookie, engine));
|
|
374
|
+
didRedact = true;
|
|
174
375
|
continue;
|
|
175
376
|
}
|
|
176
377
|
const redacted = redactSetCookie(cookie, ctx, engine);
|
|
@@ -195,35 +396,114 @@ export const headersHandler = {
|
|
|
195
396
|
return { value: didRedact ? output : value, redacted: didRedact, details };
|
|
196
397
|
},
|
|
197
398
|
};
|
|
399
|
+
/**
|
|
400
|
+
* Mask a cookie VALUE as sensitive, honoring the engine's replacement format.
|
|
401
|
+
* Falls back to "[REDACTED]" for third-party engines that don't implement the
|
|
402
|
+
* optional `maskValue`.
|
|
403
|
+
*/
|
|
404
|
+
function maskCookieValue(value, engine) {
|
|
405
|
+
return engine.maskValue ? engine.maskValue(value) : "[REDACTED]";
|
|
406
|
+
}
|
|
407
|
+
/** Max recursion depth for `maskAllStringLeaves` — bounds a pathological /
|
|
408
|
+
* cyclic manual-trace object so it can't stack-overflow (codex GLU-104
|
|
409
|
+
* confirmation review). `structuredClone` (used upstream by redactEvent)
|
|
410
|
+
* preserves cycles, so a depth guard is the safe stop condition. */
|
|
411
|
+
const MASK_LEAVES_MAX_DEPTH = 64;
|
|
412
|
+
/**
|
|
413
|
+
* Mask EVERY string leaf of a value, preserving structure and non-string
|
|
414
|
+
* scalars. Used for a non-string element found in a `set-cookie` array
|
|
415
|
+
* (a malformed/manual trace shape): a cookie is sensitive by HEADER POSITION,
|
|
416
|
+
* so key-based redaction is insufficient — the secret often sits under a
|
|
417
|
+
* non-sensitive key name like `value` in `{ name, value }` (codex GLU-104 R6).
|
|
418
|
+
*/
|
|
419
|
+
function maskAllStringLeaves(value, engine, depth = 0) {
|
|
420
|
+
if (typeof value === "string") {
|
|
421
|
+
return maskCookieValue(value, engine);
|
|
422
|
+
}
|
|
423
|
+
// Fail closed on excessive depth (cyclic / pathological input): drop the
|
|
424
|
+
// subtree rather than emit it or recurse unbounded.
|
|
425
|
+
if (depth >= MASK_LEAVES_MAX_DEPTH) {
|
|
426
|
+
return "[REDACTED: too deep]";
|
|
427
|
+
}
|
|
428
|
+
if (Array.isArray(value)) {
|
|
429
|
+
return value.map((v) => maskAllStringLeaves(v, engine, depth + 1));
|
|
430
|
+
}
|
|
431
|
+
if (value !== null && typeof value === "object") {
|
|
432
|
+
const out = {};
|
|
433
|
+
for (const [k, v] of Object.entries(value)) {
|
|
434
|
+
out[k] = maskAllStringLeaves(v, engine, depth + 1);
|
|
435
|
+
}
|
|
436
|
+
return out;
|
|
437
|
+
}
|
|
438
|
+
return value; // numbers/booleans/null — not credential material
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Standard Set-Cookie attribute names (lower-cased). Anything in attribute
|
|
442
|
+
* position that is NOT one of these is treated as a leaked fragment of a
|
|
443
|
+
* quoted/`;`-bearing cookie value and masked (codex R2 P2 edge).
|
|
444
|
+
*/
|
|
445
|
+
const KNOWN_COOKIE_ATTRS = new Set([
|
|
446
|
+
"path",
|
|
447
|
+
"domain",
|
|
448
|
+
"expires",
|
|
449
|
+
"max-age",
|
|
450
|
+
"samesite",
|
|
451
|
+
"secure",
|
|
452
|
+
"httponly",
|
|
453
|
+
"priority",
|
|
454
|
+
"partitioned",
|
|
455
|
+
]);
|
|
198
456
|
/**
|
|
199
457
|
* Redact a Set-Cookie header value.
|
|
200
|
-
*
|
|
458
|
+
*
|
|
459
|
+
* GLU-104: masks the cookie value UNCONDITIONALLY (a Set-Cookie value is a
|
|
460
|
+
* credential being minted — session id / auth token — and the cookie name is
|
|
461
|
+
* arbitrary, so name-based selectivity leaked opaquely-named session cookies).
|
|
462
|
+
* Standard cookie attributes (Path, Domain, HttpOnly, Secure, SameSite,
|
|
463
|
+
* Max-Age, Expires, Priority, Partitioned) are structural, not secret, and are
|
|
464
|
+
* preserved verbatim; a NON-standard token in attribute position (which a
|
|
465
|
+
* naive `;` split of a quoted value can produce) is masked, not leaked.
|
|
201
466
|
*/
|
|
202
467
|
function redactSetCookie(raw, ctx, engine) {
|
|
203
468
|
const parts = raw.split(";").map((p) => p.trim());
|
|
204
|
-
if (parts.length === 0) {
|
|
205
|
-
return { value: raw, redacted: false, details: [] };
|
|
206
|
-
}
|
|
207
469
|
// First part is name=value
|
|
208
|
-
const first = parts[0];
|
|
470
|
+
const first = parts[0] ?? "";
|
|
209
471
|
const eq = first.indexOf("=");
|
|
210
472
|
if (eq === -1) {
|
|
211
|
-
|
|
473
|
+
// No `name=value` structure (malformed / bare opaque token). A Set-Cookie
|
|
474
|
+
// header is a minted credential by definition — fail closed and mask the
|
|
475
|
+
// whole value rather than return it verbatim (codex R2 P2).
|
|
476
|
+
if (raw.trim() === "") {
|
|
477
|
+
return { value: raw, redacted: false, details: [] };
|
|
478
|
+
}
|
|
479
|
+
return {
|
|
480
|
+
value: maskCookieValue(raw, engine),
|
|
481
|
+
redacted: true,
|
|
482
|
+
details: [{ path: "set-cookie", plugin: "set-cookie", original: raw }],
|
|
483
|
+
};
|
|
212
484
|
}
|
|
213
485
|
const cookieName = first.slice(0, eq).trim();
|
|
214
486
|
const cookieValue = first.slice(eq + 1).trim();
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
const
|
|
221
|
-
|
|
222
|
-
|
|
487
|
+
const redactedValue = maskCookieValue(cookieValue, engine);
|
|
488
|
+
// Attributes: keep standard ones verbatim; mask any non-standard token,
|
|
489
|
+
// which is most likely a leaked fragment of a `;`-bearing/quoted value.
|
|
490
|
+
// Drop EMPTY fragments (a trailing `;` — `sid=x; Path=/;` — would otherwise
|
|
491
|
+
// become a masked pseudo-attribute) (codex R3 P3).
|
|
492
|
+
const attributes = parts
|
|
493
|
+
.slice(1)
|
|
494
|
+
.filter((attr) => attr !== "")
|
|
495
|
+
.map((attr) => {
|
|
496
|
+
const attrName = attr.split("=")[0].trim().toLowerCase();
|
|
497
|
+
return KNOWN_COOKIE_ATTRS.has(attrName) ? attr : maskCookieValue(attr, engine);
|
|
498
|
+
});
|
|
223
499
|
const reconstructed = attributes.length > 0
|
|
224
500
|
? `${cookieName}=${redactedValue}; ${attributes.join("; ")}`
|
|
225
501
|
: `${cookieName}=${redactedValue}`;
|
|
226
|
-
return {
|
|
502
|
+
return {
|
|
503
|
+
value: reconstructed,
|
|
504
|
+
redacted: true,
|
|
505
|
+
details: [{ path: cookieName, plugin: "set-cookie", original: cookieValue }],
|
|
506
|
+
};
|
|
227
507
|
}
|
|
228
508
|
// ── Handler registry ─────────────────────────────────────────────────────────
|
|
229
509
|
/** All built-in handlers indexed by name. */
|
|
@@ -232,5 +512,6 @@ export const BUILTIN_HANDLERS = {
|
|
|
232
512
|
"raw-string": rawStringHandler,
|
|
233
513
|
"url-query": urlQueryHandler,
|
|
234
514
|
headers: headersHandler,
|
|
515
|
+
body: bodyHandler,
|
|
235
516
|
};
|
|
236
517
|
//# sourceMappingURL=handlers.js.map
|
package/dist/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
export type { CompiledScope, CustomPattern, GlobalRules, HandlerContext, RedactionConfig, RedactionContext, RedactionHandler, RedactionPlugin, RedactionResult, RedactionScope, RedactionScopeDeclaration, ScopeContext, ScopeRules, } from "./types.js";
|
|
27
27
|
export { genericPartialMask, RedactionEngine } from "./engine.js";
|
|
28
28
|
export type { RedactionEngineOptions } from "./engine.js";
|
|
29
|
-
export { BUILTIN_HANDLERS, headersHandler, jsonHandler, rawStringHandler, urlQueryHandler, } from "./handlers.js";
|
|
29
|
+
export { bodyHandler, BUILTIN_HANDLERS, headersHandler, jsonHandler, rawStringHandler, urlQueryHandler, } from "./handlers.js";
|
|
30
30
|
export { compileScopes, createScopeEngine, redactValue } from "./compiler.js";
|
|
31
31
|
export type { CompilerOptions, ScopeOverride } from "./compiler.js";
|
|
32
32
|
export { redactEvent } from "./adapter.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,SAAS,EACT,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,SAAS,EACT,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
// Engine
|
|
27
27
|
export { genericPartialMask, RedactionEngine } from "./engine.js";
|
|
28
28
|
// Handlers
|
|
29
|
-
export { BUILTIN_HANDLERS, headersHandler, jsonHandler, rawStringHandler, urlQueryHandler, } from "./handlers.js";
|
|
29
|
+
export { bodyHandler, BUILTIN_HANDLERS, headersHandler, jsonHandler, rawStringHandler, urlQueryHandler, } from "./handlers.js";
|
|
30
30
|
// Compiler
|
|
31
31
|
export { compileScopes, createScopeEngine, redactValue } from "./compiler.js";
|
|
32
32
|
// Adapter
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAmBH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGlE,WAAW;AACX,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG9E,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,WAAW;AACX,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,UAAU;AACV,OAAO,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,SAAS,EACT,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAmBH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGlE,WAAW;AACX,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG9E,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,WAAW;AACX,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,UAAU;AACV,OAAO,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,SAAS,EACT,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -51,6 +51,15 @@ export interface ScopeRules {
|
|
|
51
51
|
*/
|
|
52
52
|
export interface RedactionEngineInterface {
|
|
53
53
|
redact(value: unknown, ctx?: ScopeContext): RedactionResult;
|
|
54
|
+
/**
|
|
55
|
+
* Mask a scalar as fully sensitive, honoring the engine's replacement
|
|
56
|
+
* format (partial → `abc***xyz`, simple/labeled → `[REDACTED]`). For
|
|
57
|
+
* handlers that decide a value is sensitive STRUCTURALLY — e.g. a cookie
|
|
58
|
+
* value, sensitive by virtue of living under a `Cookie`/`Set-Cookie`
|
|
59
|
+
* header — rather than via key/pattern plugins. Optional so third-party
|
|
60
|
+
* engine implementations of this interface need not provide it.
|
|
61
|
+
*/
|
|
62
|
+
maskValue?(value: string): string;
|
|
54
63
|
}
|
|
55
64
|
export interface RedactionHandler {
|
|
56
65
|
/** Handler name — must match the `handler` field in scope declarations. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAID;;;;;;GAMG;AACH;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|