(url)
| 549 | |
| 550 | // 2. 脱敏 URL 中的敏感查询参数 + 删除敏感请求数据 |
| 551 | function sanitizeQueryString(url) { |
| 552 | if (!url) return url; |
| 553 | const sensitiveParams = ['token', 'key', 'password', 'code', 'state', 'access_token', 'refresh_token', 'auth', 'secret']; |
| 554 | try { |
| 555 | const urlObj = new URL(url, window.location.origin); |
| 556 | // 先收集所有键再遍历,避免迭代时修改 searchParams 底层列表 |
| 557 | const keys = Array.from(urlObj.searchParams.keys()); |
| 558 | keys.forEach(key => { |
| 559 | if (sensitiveParams.includes(key.toLowerCase())) { |
| 560 | urlObj.searchParams.set(key, '***'); |
| 561 | } |
| 562 | }); |
| 563 | return urlObj.toString(); |
| 564 | } catch (e) { |
| 565 | return url.replace(/([?&])(token|key|password|code|state|access_token|refresh_token|auth|secret)=[^&]*/gi, '$1$2=***'); |
| 566 | } |
| 567 | } |
| 568 | |
| 569 | if (event.request) { |
| 570 | if (event.request.query_string) { |
no test coverage detected