敏感信息无感脱敏

注解侵入式

属于局部即精确脱敏,常用于相同字段需要不同脱敏规则的场景,其中注解如下:
    - @Empty:    置空(将敏感字段值取空,非等长)
    - @Hash:     哈希(将敏感字段值取Hash,非等长)
    - @Regex:    正则(将敏感字段值通过正则表达式进行替换,非等长)
    - @Repl:     替换(将敏感字段值根据所指定位置进行替换,等长)
    - @Mask:     掩盖(将敏感字段值进行*替换,等长,且可采用内置脱敏规则或自定义位置)

针对于@Mask内置脱敏规则有:
    1)姓名(FULL_NAME):默认自动根据字符长度显示,当长度小于等于2,则显示第1个字符,否则显示前2个字符
    2)手机号(MOBILE_PHONE):大陆-11位、台湾-10位、香港澳门-8位。默认自动根据字符长度显示大陆-前3后4、台湾-前3后3、香港澳门-前2后2
    3)固话(FIXED_PHONE):由3~4位区号+7~8位固定数字组成。默认自动根据字符长度显示,当区号小于等于3,则显示前3后2,否则前4后2
    4)身份证号(ID_CARD):由6位地址码+8位出生日期+3位顺序码+1位校验码,有15位或18位。默认显示前3后4
    5)地址(ADDRESS):默认自动根据字符长度显示,当长度大于6,则显示前6,则显示前7
    6)电子邮件(EMAIL):默认自动根据@前字符长度显示,且@后字符显示,当@前字符长度小于3,则@前字符全显示,否则显示前三位及@后
    7)中国大陆车牌(CAR_LICENSE):由1个汉字+1个字母+5~6字母和数字组成。默认显示前2后2
    8)银行卡(BANK_CARD):默认显示前6后4
    9)护照(PASSPORT):由1位字母(护照类型)+8位数字组成。默认显示前1后3
    10)数值(NUMBER):默认显示第1位

对于日期,则采用正则处理,如默认显示年份:(.+年)?(.+月)?(.+日)?.+
;而若自定义显示,格式:前,后,如前3后4显示(3,4)、前3显示(3)、后4显示(,4),如:@Mask(show = @CustomShow(pre = 3, suf = 4))

 配置非侵入式

属于全局,常用于与注解侵入式相反的场景,可同时用且全局优先于局部,若局部匹配不到,则会采用全局匹配,因此最好配置全局规则

支持场景

日志脱敏

对于日志脱敏,只支持Logback、Log4j/Log4j2;且需满足如下日志输出格式:格式-传数组或可变参数值:log.info("模板:{key1}、{key2}...", val1, val2);

日志框架有以下组合:
    1)slf4j + logback: slf4j-api.jar + logback-classic.jar + logback-core.jar
    2)slf4j + log4j: slf4j-api.jar + slf4j-log412.jar + log4j.jar
    3)slf4j + jul: slf4j-api.jar + slf4j-jdk14.jar
    4)也可以只用slf4j无日志实现:slf4j-api.jar + slf4j-nop.jar

注:log4j2配合需要导入log4j2的log4j-api.jar、log4j-core.jar和桥接包log4j-slf4j-impl.jar。所谓的桥接包,就是实现StaticLoggerBinder类,用来连接slf4j和日志框架。
因为log4j和log4j2刚开始没有StaticLoggerBinder这个类,为了不改变程序结构,只能重新写一个新的jar来实现StaticLoggerBinder。
而logback出现slf4j之后,于是在logback本身的jar中实现了StaticLoggerBinder,所以就不需要桥接包

Restful接口脱敏

1、对于网页脱敏,当采用@ResponseBody修饰或返回类型为ResponseEntity的Restful接口时,
默认会脱敏,若不需要脱敏则使用@Desensitization(enabled=false)禁用脱敏 
2、对于希望根据权限进行脱敏,则可以实现UserMaskPermission接口

 注解侵入式案列

1、电话号码177*****144:@Mask(type = SensitiveTypeEnum.MOBILE_PHONE)
2、电子邮箱133***@qq.com:@Regex(pattern = "(\\w{3})\\w+(@qq.com)", rv = "$1***$2")
3、身份证:@Hash(algorithm = Hash.AlgorithmEnum.MD5, salt = "ws@4q#")
4、地址:@Repl(posns = {@Repl.Posn(i = 3), @Repl.Posn(i = 8, rv = "#?12$%34")})

 配置非侵入式案列

ouo:
  desensitization:
    #启动脱敏
    enabled: true
    #脱敏范围即配置包路径,多个值时以英文逗号隔开;为了减少不必要的数据脱敏,否则会影响系统性能,因此推荐设置。默认:空,当为空时,会扫描全部类
    #scan: xx.xx,yy.yy
    #脱敏规则列表
    rules:
      #字段名
      - field: name
        #脱敏模式:置空empty、哈希hash、正则regex、替换replace、掩盖mask
        mode: mask
        #脱敏场景:日志log、网页web、全部all,默认all
        scene: log
        #敏感类型,采用内置脱敏配置
        type: full_name
      - field: phone
        mode: replace
        scene: all
        posns:
          - i: 3
          - i: 8
            #是否固定值,默认true,false为随机值
            fixed: true
            #替换值
            rv: "#"
        #剩余位置
        surplus:
          fixed: false
      - field: id_card
        mode: hash
        scene: web
        #算法
        algorithm: sm3
        #盐
        salt: grvyw$2
      - field: addr
        mode: empty
      - field: ip
        mode: regex
        #正则表达式
        pattern: (\\d{3})\\d{4}(\\d{4})
        rv: $1####$2

相关代码详解Github

### 修改后的抽样综合设计方案 #### **一、分层策略优化** 1. **一级分层:按城市分层** - **分层依据**:根据一线城市(北京、上海、广州、深圳)的经济发展水平、养宠文化普及率及智能设备渗透率差异,确定各城市样本比例。 - **参考数据**:结合各城市养宠家庭占比(如北京20%、上海22%、广州18%、深圳15%)分配样本量,确保比例与实际人口结构一致。 - **样本分配示例**: - 北京:30% - 上海:35% - 广州:20% - 深圳:15% 2. **二级分层:按宠物类型分层** - **分层依据**:根据宠物类型(猫、狗、其他)的饲养需求差异,结合各城市宠物类型分布数据(如猫主人占比60%、狗主人35%、其他5%)进行二次分层。 - **样本分配示例**: - 猫主人:60% - 狗主人:35% - 其他宠物:5% --- #### **二、样本量计算与分配** 1. **总样本量**: - 基于置信水平95%、误差范围5%,计算最小样本量(公式:\( n = \frac{Z^2 \cdot p(1-p)}{e^2} \)),得出基础样本量约400人。 - 考虑分层后样本效率损失,总样本量扩展至**500人**。 2. **分层样本分配**: - 北京:500 × 30% = 150人(猫90人、狗53人、其他7人) - 上海:500 × 35% = 175人(猫105人、狗61人、其他9人) - 广州:500 × 20% = 100人(猫60人、狗35人、其他5人) - 深圳:500 × 15% = 75人(猫45人、狗26人、其他4人) --- #### **三、抽样方法改进** 1. **简单随机抽样**: - 在每层(城市×宠物类型)中,通过宠物社区平台、宠物医院合作名单、社交媒体群组等渠道获取抽样框,使用随机数生成器抽取样本。 2. **配额抽样补充**: - 若某细分层(如深圳的“其他宠物”)难以通过随机抽样覆盖,采用配额抽样补充,确保每层样本量达标。 --- #### **四、数据收集方法整合** 1. **问卷调查为主**: - 通过在线问卷(如问卷星)收集基础数据,覆盖功能满意度、价格敏感度、使用场景等结构化问题。 - **优势**:高效覆盖大样本,便于量化分析。 2. **深度访谈为辅**: - 从问卷受访者中随机抽取10%(约50人)进行半结构化访谈,聚焦以下主题: - 智能喂食器使用痛点(如卡粮、断网问题) - 未满足需求(如湿粮投喂、多宠物识别) - 情感体验(如外出时的愧疚感缓解) - **实施细节**: - 制定标准化访谈提纲,培训访谈员确保一致性。 - 采用录音+文字转录方式记录,结合NLP工具分析情感倾向。 --- #### **五、质量控制与偏差应对** 1. **选择偏差控制**: - 通过多渠道(社区、医院、线上平台)构建抽样框,避免单一来源偏差。 - 对拒访者进行简单背景统计(如年龄、宠物类型),评估样本代表性。 2. **响应偏差应对**: - 设置匿名填写选项,减少社会期望偏差。 - 问卷中穿插反向题和逻辑校验题,识别无效数据。 3. **伦理合规**: - 获取参与者知情同意,明确数据仅用于学术研究。 - 敏感信息(如收入、住址)脱敏处理,遵守《个人信息保护法》。 --- #### **六、可行性增强措施** 1. **合作资源利用**: - 与一线城市宠物医院、智能设备品牌商合作,获取目标人群接触渠道。 - 提供小礼品(如宠物零食)激励参与,提高响应率。 2. **技术支持**: - 使用SPSS或Python进行分层数据加权分析,确保结果准确性。 - 通过Tableau可视化呈现城市间差异及宠物类型需求对比。 --- ### **方案优势** 1. **精准分层**:结合城市经济差异与宠物类型需求,增强结论针对性。 2. **方法互补**:量化问卷与质性访谈结合,兼顾数据广度与深度。 3. **实操性强**:明确样本分配、实施步骤及质量控制措施,降低执行风险。 4. **伦理合规**:严格遵循数据安全与隐私保护规范,提升研究可信度。 此设计可为研究一线城市单身养宠人群对智能喂食器的差异化需求提供可靠数据支撑。不进行二次分层,计算样本量
最新发布
03-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值