在提供语音搜索答案时,如何避免泄露用户敏感信息?
解读
面试官真正想考察的是:
- 你是否理解“语音搜索”场景下“敏感信息”的范围(不仅限于身份证号、手机号,还包括地理位置、消费记录、家庭成员等可间接识别个人的数据)。
- 你是否具备把《个人信息保护法》《数据安全法》落到 SEO 实操中的能力,而不是背法条。
- 你是否能在“答案被读出来”这一特殊交互里,用技术、内容、产品三重手段降低泄露风险,同时兼顾排名与体验。
知识点
- 最小可用原则:只返回能回答问题的最少字段,默认隐藏可能拼接出身份的高精度属性。
- 动态意图分级:把 query 按“含个人标识符”“含位置特征”“含交易特征”三级打标,分别走脱敏、泛化、拒绝策略。
- 语音场景专用脱敏:
- 数字转汉字并模糊化(“1××××××××××”读作“手机号中间四位”)。
- 地址只到区县级,街道及以下用“附近”替代。
- 服务端缓存隔离:TTS 缓存 key 去掉 UID,防止通过语音 URL 反爬用户身份。
- 前端收口:语音答案统一走 SSR 白名单模板,禁止 JS 动态拼接,避免开发者把敏感字段注入。
- 日志清洗:Nginx 日志用正则擦除手机、身份证,擦除后的日志才能进入 SEO 分析平台。
- 算法信号:百度 2021 年《语音搜索白皮书》明确“过度精准”会被降权,合规本身就能保护排名。
答案
“我会把防泄露拆成三步:
第一步,query 识别。用正则+NER 识别出含手机、身份证、经纬度、车牌等敏感词的语音请求,直接标记为 PII 类,进入‘高敏答案池’。
第二步,答案构造。高敏答案池只返回泛化模板,例如用户问‘我在××小区附近有没有招商银行’,返回‘在××区共有 3 家招商银行,最近的一家距您约 1 公里’,隐藏小区名和精确距离;若用户追问‘离我多远’,需再次确认定位授权,否则拒绝。
第三步,技术收口。所有语音答案统一走服务端 TTS,缓存 key 用 question+城市+一级分类 做哈希,去掉 UID;同时把日志里的数字统一替换成‘*’后再落盘,确保 SEO 用的点击、停留数据也脱敏。上线前做‘语音黑盒测试’,用同事的真实手机号、家庭地址模拟 query,检查是否被读出来。通过这三步,既能满足《个人信息保护法》最小可用要求,又不会因为过度精准而被百度语音算法降权。”
拓展思考
- 多轮对话的上下文继承:第二轮追问往往携带第一轮隐式 ID,需要把 session 切片,每轮重新评估敏感等级。
- 儿童语音搜索:14 岁以下用户无论 query 是否含敏感词,一律走“青少年模式”答案库,屏蔽地址、电话、价格。
- 本地生活白名单:与高德/腾讯地图合作,把 POI 精确坐标放在 CDN 边缘节点,语音答案只拉取模糊坐标,既保证速度又隐藏真实 lat/lng。