51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

铁路12306客票系统中,用户个人信息(如身份证号、手机号)在非业务场景下(如数据分析、营销活动)需要进行脱敏处理。请设计一套数据脱敏策略,并说明如何通过数据库访问控制实现不同角色的数据访问权限(如普通用户只能查看自己的信息,运营人员可查看部分用户信息,数据分析师可脱敏后查看聚合数据)。

中国铁路信息科技集团有限公司数据安全技术研究难度:中等

答案

1) 【一句话结论】
针对铁路12306系统,采用“分层动态脱敏+细粒度数据库访问控制”策略,通过规则引擎动态调整脱敏粒度,结合高并发缓存与RBAC/ABAC权限模型,实现不同角色(普通用户、运营人员、数据分析师)对脱敏数据的差异化访问,保障数据安全与业务效率。

2) 【原理/概念讲解】
老师:咱们先拆解核心逻辑——数据脱敏要解决“非业务场景下敏感信息泄露”的问题,同时满足不同角色的业务需求。首先,分层脱敏:按字段(身份证号、手机号)和记录(个人/聚合)划分脱敏粒度,比如个人记录用掩码法,聚合数据用部分脱敏(如保留前缀);动态规则引擎:根据业务场景(如营销活动级别、数据访问频率)实时调整脱敏规则,比如活动期间手机号仅脱敏后4位;数据库访问控制:通过RBAC(角色绑定权限)+ ABAC(属性动态授权),比如普通用户只能访问自身脱敏信息,运营人员可查询全量脱敏用户信息,数据分析师仅能获取脱敏聚合数据。类比的话,分层脱敏像给数据“穿不同厚度的保护衣”,动态规则引擎是“衣橱”,根据场景换衣服;数据库控制是“门卫”,按角色和属性放行。

3) 【对比与适用场景】

脱敏方法定义特性使用场景注意点
替换法用固定字符(如“*”)替换部分数据简单易实现,不影响数据结构非关键信息(如部分手机号)可能影响数据完整性
掩码法隐藏中间部分(如身份证号前6后4)保留上下文,语义清晰身份证号、手机号等部分敏感信息需明确掩码规则
加密法对敏感字段加密存储,脱敏时解密高安全性,需密钥管理高敏感数据(如身份证号)性能开销大,需解密成本
动态规则引擎根据业务需求(如营销活动级别)调整脱敏粒度灵活,适应业务变化需频繁调整脱敏规则的场景(如营销活动)需维护规则逻辑,避免规则冲突

4) 【示例】
假设用户表结构:users(id, name, id_card, phone, role, region),高并发下缓存脱敏结果(用Redis缓存脱敏后的id_card、phone字段,缓存时间5分钟)。不同角色查询及缓存更新机制:

  • 普通用户(role='user'):通过个人中心查询自身脱敏信息,SQL示例(伪代码):
    SELECT id, name, 
           SUBSTRING(id_card, 1, 6)||'****'||SUBSTRING(id_card, -4) AS id_card, 
           SUBSTRING(phone, 1, 3)||'****'||SUBSTRING(phone, -4) AS phone 
    FROM users 
    WHERE id = ? AND role = 'user';
    
  • 运营人员(role='operator'):通过管理后台查询全量脱敏用户信息,SQL示例:
    SELECT id, name, 
           SUBSTRING(id_card, 1, 6)||'****'||SUBSTRING(id_card, -4) AS id_card, 
           SUBSTRING(phone, 1, 3)||'****'||SUBSTRING(phone, -4) AS phone 
    FROM users 
    WHERE role = 'operator';
    
  • 数据分析师(role='analyst'):通过聚合视图获取脱敏统计,SQL示例:
    SELECT region, COUNT(*) AS user_count 
    FROM users 
    WHERE role = 'analyst' 
    GROUP BY region;
    
  • 缓存更新机制:当用户信息更新(如手机号修改)时,Redis缓存键user_deidentified:{id}失效(TTL重置或更新键),触发重新计算脱敏结果并缓存,确保脱敏结果与数据库一致。

5) 【面试口播版答案】
面试官您好,针对铁路12306系统中用户个人信息在非业务场景的脱敏需求,我的核心策略是“分层动态脱敏+细粒度数据库访问控制”,结合高并发缓存与规则引擎,适配12306用户规模大、数据更新频繁的特点。首先,分层脱敏:身份证号采用“前6位++后4位”掩码,手机号采用“前3位++后4位”掩码,既保留上下文又隐藏核心信息;动态规则引擎:根据业务场景(如营销活动级别)实时调整脱敏粒度,比如营销活动时手机号仅脱敏后4位,活动结束后恢复原规则;数据库访问控制:通过RBAC+ABAC实现权限隔离——普通用户仅能查询自身脱敏信息,运营人员可查询全量脱敏用户信息,数据分析师仅能获取脱敏聚合数据(如地区分布统计);高并发下,对频繁访问的脱敏字段缓存脱敏结果,减少数据库计算压力。同时,设计缓存更新机制,当用户信息更新时,通过Redis的缓存失效策略确保脱敏结果与数据库一致,避免脱敏不一致问题。

6) 【追问清单】

  • 问题1:脱敏粒度如何动态调整?
    回答要点:通过规则引擎,根据业务需求(如营销活动级别)实时调整脱敏规则,比如活动期间手机号仅脱敏后4位,活动结束后恢复原规则。
  • 问题2:数据更新时缓存同步的机制?
    回答要点:当用户信息更新时,Redis缓存键失效(TTL重置或更新键),触发重新计算脱敏结果并缓存,确保脱敏结果与数据库一致。
  • 问题3:规则冲突如何处理?
    回答要点:通过规则优先级(如活动规则高于常规规则)和版本控制,避免脱敏规则冲突,定期审计规则一致性。
  • 问题4:聚合数据脱敏后统计准确性如何保障?
    回答要点:聚合数据脱敏影响小,全量数据脱敏时用缓存或增量更新优化,比如聚合数据脱敏后统计结果准确性高,全量数据脱敏时通过Redis缓存脱敏结果。
  • 问题5:脱敏对数据验证的影响如何处理?
    回答要点:对验证字段(如手机号前缀)保留部分信息,或采用部分脱敏(如保留前3位),确保验证功能正常。

7) 【常见坑/雷区】

  • 缓存未同步导致脱敏不一致:用户信息更新后,缓存未更新,导致脱敏结果与数据库不一致,引发安全风险。
  • 规则冲突引发脱敏错误:动态规则引擎规则冲突,导致脱敏结果错误,影响数据准确性。
  • 权限越权:普通用户能访问其他用户信息,违反隐私保护规定。
  • 脱敏对数据分析影响未考虑:聚合数据脱敏后统计结果不准确,或全量数据脱敏时性能下降。
  • 数据验证问题:掩码法对数据验证字段影响,导致验证失败,需额外处理。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1