来源:juejin.cn/post/7110110794188062727下午惬意时光,突然产品小姐姐走到我面前,打断我短暂的摸鱼time,企图与我进行深入交流,还好我早有防备没有闪,打开瑞star的点单页面,暗示没有一杯coffee解决不了的需求,需求是某些接口返回的信息,涉及到敏感数据的必须进行脱敏操作,我思考一反,表示某问题,马上安排。思路1.要做成可配置多策略的脱敏操作,要不然一个个接口进行脱敏操作,重复的工作量太多,很显然违背了“多写一行算我输”的程序员规范,思来想去,定义数据脱敏注解和数据脱敏逻辑的接口,在返回类上,对需要进行脱敏的属性加上,并指定对应的脱敏策略操作。2.接下来我只
来源:juejin.cn/post/7110110794188062727下午惬意时光,突然产品小姐姐走到我面前,打断我短暂的摸鱼time,企图与我进行深入交流,还好我早有防备没有闪,打开瑞star的点单页面,暗示没有一杯coffee解决不了的需求,需求是某些接口返回的信息,涉及到敏感数据的必须进行脱敏操作,我思考一反,表示某问题,马上安排。思路1.要做成可配置多策略的脱敏操作,要不然一个个接口进行脱敏操作,重复的工作量太多,很显然违背了“多写一行算我输”的程序员规范,思来想去,定义数据脱敏注解和数据脱敏逻辑的接口,在返回类上,对需要进行脱敏的属性加上,并指定对应的脱敏策略操作。2.接下来我只
背景我们打的日志中经常包含姓名、手机号、银行卡号等敏感信息,如果不做任何处理,就会以明文的形式展示在日志中,存在安全风险。像下面这样:我们需要一种能自动帮我们脱敏的工具,效果如下:方案1-基于logback我们得先搞清楚消息内容是在哪里处理的,也就是配置文件中这个占位符的内容:对应到源码是这里ch.qos.logback.classic.PatternLayout:这里可以看出来都是 通过这个类处理的 ch.qos.logback.classic.pattern.MessageConverter。继续看一下这个类的逻辑:publicclassMessageConverterextendsCla
背景我们打的日志中经常包含姓名、手机号、银行卡号等敏感信息,如果不做任何处理,就会以明文的形式展示在日志中,存在安全风险。像下面这样:我们需要一种能自动帮我们脱敏的工具,效果如下:方案1-基于logback我们得先搞清楚消息内容是在哪里处理的,也就是配置文件中这个占位符的内容:对应到源码是这里ch.qos.logback.classic.PatternLayout:这里可以看出来都是 通过这个类处理的 ch.qos.logback.classic.pattern.MessageConverter。继续看一下这个类的逻辑:publicclassMessageConverterextendsCla
问题在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。解决思路就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密方法二:有方法一到出现对所有重大问题的影响,需要考虑到问题的出现,并且需要考虑可能出现的组员时添加数据的方法。最后决定采用mybatis的插件在mybatis的SQL执行和结果填充操作上进行切入。上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密Mybatis插件原理Mybatis的是通过拦截器实现的,Mabatis支持对当事人进行拦截实现设置对参数中带有敏感参数字段的数据时进行加密对返回的结果进行解密处理根据不同的要求
问题在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。解决思路就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密方法二:有方法一到出现对所有重大问题的影响,需要考虑到问题的出现,并且需要考虑可能出现的组员时添加数据的方法。最后决定采用mybatis的插件在mybatis的SQL执行和结果填充操作上进行切入。上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密Mybatis插件原理Mybatis的是通过拦截器实现的,Mabatis支持对当事人进行拦截实现设置对参数中带有敏感参数字段的数据时进行加密对返回的结果进行解密处理根据不同的要求
无论对于什么业务来说,用户数据信息的安全性无疑都是非常重要的。尤其是在数字经济大火背景下,数据的安全性就显得更加重要。数据脱敏可以分为两个部分,一个是DB层面,防止DB数据泄露,暴露用户信息;一个是接口层面,有些UI展示需要数据脱敏,防止用户信息被人刷走了。v需求背景DB层面的脱敏今天先不讲,今天先讲讲依赖于注解的接口层面的数据脱敏,接口层面的脱敏可能最原始和简单的方法就是在每个controller输出数据时,硬性处理。但是这么做的方案,如果后续脱敏规则改了,那需要改的地方就太多了,而且很容易有遗漏的地方,造成全站脱敏规则不统一的情况。所以我们建议的是用注解的方式,可插拔性更好,随时可以更改规
无论对于什么业务来说,用户数据信息的安全性无疑都是非常重要的。尤其是在数字经济大火背景下,数据的安全性就显得更加重要。数据脱敏可以分为两个部分,一个是DB层面,防止DB数据泄露,暴露用户信息;一个是接口层面,有些UI展示需要数据脱敏,防止用户信息被人刷走了。v需求背景DB层面的脱敏今天先不讲,今天先讲讲依赖于注解的接口层面的数据脱敏,接口层面的脱敏可能最原始和简单的方法就是在每个controller输出数据时,硬性处理。但是这么做的方案,如果后续脱敏规则改了,那需要改的地方就太多了,而且很容易有遗漏的地方,造成全站脱敏规则不统一的情况。所以我们建议的是用注解的方式,可插拔性更好,随时可以更改规
\secure-ext-spring-boot-starter自发布以来受到广大童鞋的关注,也收到各位同行朋友好的建议与需求,主要是常规情况下我们可能根据各自项目需求,列表页会返回Page对象,Page中包含records(List类型),records又包含实际的Entity,因此大多数情况下返回的会是复杂对象。因此经过几天的优化调整,重新发布升级版,本次主要升级内容:1.支持自动化配置;2.支持深度脱敏,支持复杂对象,嵌套对象,对象内多层级嵌套,自动寻找返回值中嵌套对象包含的需脱敏的属性;最新版本最新发布版已更新到mave中央仓库:[MavenCentral][1.0.3-release]
\secure-ext-spring-boot-starter自发布以来受到广大童鞋的关注,也收到各位同行朋友好的建议与需求,主要是常规情况下我们可能根据各自项目需求,列表页会返回Page对象,Page中包含records(List类型),records又包含实际的Entity,因此大多数情况下返回的会是复杂对象。因此经过几天的优化调整,重新发布升级版,本次主要升级内容:1.支持自动化配置;2.支持深度脱敏,支持复杂对象,嵌套对象,对象内多层级嵌套,自动寻找返回值中嵌套对象包含的需脱敏的属性;最新版本最新发布版已更新到mave中央仓库:[MavenCentral][1.0.3-release]