增加系统通用字符串脱敏规则01、脱敏字段支持*
需求背景:
- 实例很多, 所有库的字段共计100万+,不同环境的库名不一样,有后缀。
- 敏感长度不一样。是全球化公司,电话,身份证,卡号长度完全不一样。
增加功能:
- 增加系统通用的脱敏规则。规则:根据字段长度自动分成3份,中间段脱敏。
- 脱敏字段配置时,支持对库名,表名使用*,不用再关心库名和表名,只用关心新增的敏感字段名,方便配置。
使用建议: 在配置脱敏字段时,只需要找出系统中phone,moblie,passowd等敏感的的字段名,向data_masking_columns表插入数据,不用再关心库名和表名。
不同长度的敏感字段脱敏效果:
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 77.43%. Comparing base (
3bad15a) to head (a47beea).
Additional details and impacted files
@@ Coverage Diff @@
## master #2698 +/- ##
==========================================
+ Coverage 77.39% 77.43% +0.04%
==========================================
Files 119 119
Lines 16330 16359 +29
==========================================
+ Hits 12639 12668 +29
Misses 3691 3691
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
不好意思,我没太理解这里的通用脱敏规则的含义,能否帮忙再详细说明一下使用方法?
方便的话写到代码中去一下。
不好意思,我没太理解这里的通用脱敏规则的含义,能否帮忙再详细说明一下使用方法?
方便的话写到代码中去一下。
通用脱敏规则:
- 这个规则是将所有的字符串平均分成3份, 中间那份脱敏。 不用关心是不是 手机,邮箱,证件号,不需要一个个类型配置规则。
- 就是一个正则表达式:^([\s\S]{2,})([\s\S]{2,})([\s\S]{2,})$ , 正则的数据2是根据字段的长度动态计算的。
使用方式和以前一样的。只是可以选择 “通用规则”。
能否将名字改为"三段式通用脱敏规则", 这样更加好理解一些, 你觉得如何? 还有可以考虑在model里预留几个槽位, 然后让管理员可以在系统配置中配置正则规则. 三段式的可以写死没问题, 我觉得这个确实是通用性很高
能否将名字改为"三段式通用脱敏规则", 这样更加好理解一些, 你觉得如何? 还有可以考虑在model里预留几个槽位, 然后让管理员可以在系统配置中配置正则规则. 三段式的可以写死没问题, 我觉得这个确实是通用性很高
- 恩。新名字可以。 要不要加01呢。 这个规则只处理字符类型, 并没有处理金额等数字类型。
- 正则一开始我是放开的。 我现在放开吧。
不用加01,你预留的槽位可以再加 01,02 一直到10
可以考虑适配下数字类型?
不用加01,你预留的槽位可以再加 01,02 一直到10
懵了。“model里预留几个槽位” 这句话不明白意思了。get不到点。
如果放开正则,正则配置是在“脱敏规则配置” 菜单里面配置的。
可以考虑适配下数字类型?
数字类型,没有具体的需求哎。
可能需求:把数字 乘以一个随机数? 可能需求:把某一位数字变成*?
现在的代码把数字转为str类型,去脱敏了。 我在想这个通用规则要不要这样处理。 感觉需要加10个通用规则才行。
不好意思, 我才关注到可以使用 脱敏规则设置和 脱敏字段配置 两个配置来结合, 配置脱敏规则, 那这样的话, 你当前的这个需求, 是不是可以直接用 其他 这个脱敏规则来实现?
脱敏字段配置时,支持对库名,表名使用*,不用再关心库名和表名,只用关心新增的敏感字段名,方便配置。
我建议本次 pr 先加这个功能, 然后你用 "其他" 这个规则进行关联.
如果你想扩展这个功能, 比如说可以设置无限个脱敏规则, 可以扩展 其中的 rule_type, 使其支持很多的规则, 欢迎后续再提 pr .
对于数字类型的字段, 我比较建议转换为文本然后再做实现.
不好意思, 我才关注到可以使用 脱敏规则设置和 脱敏字段配置 两个配置来结合, 配置脱敏规则, 那这样的话, 你当前的这个需求, 是不是可以直接用
其他这个脱敏规则来实现?脱敏字段配置时,支持对库名,表名使用*,不用再关心库名和表名,只用关心新增的敏感字段名,方便配置。
我建议本次 pr 先加这个功能, 然后你用 "其他" 这个规则进行关联.
如果你想扩展这个功能, 比如说可以设置无限个脱敏规则, 可以扩展 其中的
rule_type, 使其支持很多的规则, 欢迎后续再提 pr .对于数字类型的字段, 我比较建议转换为文本然后再做实现.
- 用“其他”这个规则实现不了需求。因为正则表达式必须要动态生成。
- 需要新加一个规则“其他2” (或者叫 三段式通用脱敏规则),正则需配置为"^([\s\S]{@Length01,}?)([\s\S]{@Length02,}?)([\s\S]{@Length03,}?)$",然后需要代码支持将正则中的@Length01,@Length02,@Length03 替换为真正的数字的。
@LeoQuote 已修复,麻烦再看一下。2024-7-31
rebase下到最新版,有冲突
rebase下到最新版,有冲突
已rebase。为啥我本地没有显示冲突?好奇怪。