(url)
| 606 | |
| 607 | // 2. 脱敏 URL 中的敏感查询参数 |
| 608 | function sanitizeQueryString(url) { |
| 609 | if (!url) return url; |
| 610 | var sensitiveParams = ['token', 'key', 'password', 'code', 'state', 'access_token', 'refresh_token', 'auth', 'secret']; |
| 611 | try { |
| 612 | var urlObj = new URL(url, window.location.origin); |
| 613 | // 大小写不敏感匹配:先收集所有键再遍历 |
| 614 | var paramKeys = Array.from(urlObj.searchParams.keys()); |
| 615 | paramKeys.forEach(function(key) { |
| 616 | if (sensitiveParams.indexOf(key.toLowerCase()) !== -1) { |
| 617 | urlObj.searchParams.set(key, '***'); |
| 618 | } |
| 619 | }); |
| 620 | return urlObj.toString(); |
| 621 | } catch (e) { |
| 622 | return url.replace(/([?&])(token|key|password|code|state|access_token|refresh_token|auth|secret)=[^&]*/gi, '$1$2=***'); |
| 623 | } |
| 624 | } |
| 625 | |
| 626 | if (event.request) { |
| 627 | if (event.request.query_string) { |
no test coverage detected