在自然语言和混合文本日志中,打码后可能仍需区分这是手机号、凭证还是姓名,并保留必要的人工核对线索。mask 提供 prependPlaceholder 参数(布尔值,默认 false),设为 true 时在字符打码或锚点打码结果外添加类型标记,输出格式为 [TYPE_MASKED]{脱敏预览}。例如手机号 13600007890 保留前三后四并开启该参数后输出 [PHONE_MASKED]{1367890},未开启时仅为 1367890。
实际配置示例:
* | extend content = mask(content, '[
{"mode":"semantic","types":["NAME","ADDRESS"],"maskType":"placeholder"},
{"mode":"buildin","types":["PHONE","API_KEY"],"keepPrefix":3,"keepSuffix":4,"prependPlaceholder":true},
{"mode":"keyword","keys":["token","api_key"],"keepPrefix":3,"keepSuffix":4,"prependPlaceholder":true}
]')
这样查询和审计时可通过 [PHONE_MASKED] 判断信息类别,用保留的前后缀辅助核对调用对象,再通过 trace_id 关联调用链路。该参数也适用于姓名、地址类型,如语义识别到姓名设置 keepPrefix=1 加 prependPlaceholder=true 可输出 [NAME_MASKED]{林*}。保留位数应按排障需要选择,避免过度暴露。




