23 lines
1008 B
JavaScript
23 lines
1008 B
JavaScript
'use strict';
|
|
|
|
const assert = require('assert');
|
|
const { redactText } = require('../src/utils/diagnostics');
|
|
|
|
const secret = 'DoNotLeak123456';
|
|
const input = `https://example.test/path?username=user@example.com&password=${secret}&confirmation_password=${secret}&pli=1`;
|
|
const redacted = redactText(input);
|
|
|
|
assert(!redacted.includes(secret), '诊断脱敏后不得保留密码值');
|
|
assert(redacted.includes('password=***'));
|
|
assert(redacted.includes('confirmation_password=***'));
|
|
|
|
const googleApiKey = `AIza${'A'.repeat(35)}`;
|
|
const geminiApiKey = `AQ.${'B'.repeat(30)}`;
|
|
const keyRedacted = redactText(`https://example.test?key=${googleApiKey}&gemini=${geminiApiKey}`);
|
|
assert(!keyRedacted.includes(googleApiKey), 'Google API Key 不得进入诊断日志');
|
|
assert(!keyRedacted.includes(geminiApiKey), 'Gemini API Key 不得进入诊断日志');
|
|
assert(keyRedacted.includes('key=AIza***'));
|
|
assert(keyRedacted.includes('gemini=AQ.***'));
|
|
|
|
console.log('diagnostics_sensitive_url_redaction.test.js: PASS');
|