美文网首页
业务API脱敏的思考

业务API脱敏的思考

作者: 赤子心_d709 | 来源:发表于2019-12-11 20:56 被阅读0次

背景

api某些字段属于敏感信息,原本在api层返回,现在禁止返回
比如银行卡账号,性别等等
现有架构API+RPC,数据存储redis+DB
暂且不谈db是否脱敏(加解密等),在API层是直接返回敏感信息的
如何方便的API层禁止这一个字段的返回

前提,客户端不强依赖特定字段

场景说明

假设有下面的用户类型,含id,姓名,性别信息,其中性别属于敏感信息

type User struct{
 id int64
 name string
 sex string
}

现在有客户端请求用户信息,客户端只用到了name,根本不用sex,那么这时候就需要脱敏了

方案

前提

1.客户端不强依赖敏感信息字段
比如不给sex信息客户端也能work,不会crash

2.既然是有RPC接口,肯定有类似thrift的定义,各个接口的返回参数,也会定义optional,required

方案1

依赖于rpc的实现,即类thrift接口定义文件都定义UserDto中的Sex字段是optional的,那么rpc server端不返回即可,上游可以接受默认nil

方案2

定义出original response和new response,比如

message user_response{
    required int32 status_code = 1;
    required int64 id = 1
    required string name=2
    required string sex=3
}

message user_new_response{
    required int32 status_code = 1;
    required int64 id = 1
    required string name=2
}

原resp为user_response,新resp为user_new_response
那么吐出api的的时候走一层middleware,将原本的resp通过序列化,json marshell和unmarshell转化成user_new_response,这样端上就不会受到sex的返回了

比较

优点 缺点
方案1 干净,省带宽 强依赖接口定义,如果有一个接口没有写optional,那这个方案就很难执行
方案2 方便,加middleware,不用管rpc各层变更 浪费带宽,序列化等操作耗时

思考

如果历史客户端强依赖某个敏感字段,怎么办?
那么客户端改掉不要依赖,新版执行即可

怎么对老版本客户端返回老resp,新版客户端给新resp?
服务端根据客户端请求的版本号控制就好了

refer

下面写的比较丰富,我的场景其实只是简单的一步
https://www.jianshu.com/p/ee6500509c00
https://www.jianshu.com/p/2e69ff5bb3cc
https://my.oschina.net/u/3867294/blog/3089014

相关文章

  • 业务API脱敏的思考

    背景 api某些字段属于敏感信息,原本在api层返回,现在禁止返回比如银行卡账号,性别等等现有架构API+RPC,...

  • 网智天元金蜂巢系统在评测中再次赢得客户称赞

    3月,河北某银行基于采购数据脱敏产品以满足行内业务的需求,对外进行招标。网智天元等四家厂商研发的数据脱敏产品满足银...

  • 脱敏

    "脱敏"的过程有可能是变麻木的过程。 除非你去体会、去思考、去总结、去践行。所以,根据你脱敏的方式,会得不...

  • 【sharding-jdbc】spring boot 集成 sh

    应实际业务需求,需要对业务部分数据进行脱敏处理。sharding-jdbc 框架能够实现此功能,集成此框架到项目中...

  • 筑基25、26课

    25课 第二单元系统脱敏法 脱敏就是摆脱敏感的意思。系统脱敏就是逐步的摆脱敏感。系统脱敏法的基本方法和原理就是用放...

  • TST API 设计列表

    1.业务类型表API 2.币种表API 3.关区业务关系表API 4.关区代码表API 5.系统参数表API 6....

  • FastApi (jxzs)

    代码框架 整个项目包含api层、业务逻辑层和service层,在api层进行入参格式校验,业务层处理具体的业务信息...

  • LUAT实践 – 消息机制让我们的功能组件更解耦

    本实践目标 熟悉air20x的sys.dispatch, sys.reg API 思考如何让我们业务模块的功能更内...

  • API服务平台,RestCloud服务编排平台

    API服务平台把微服务发布的API或业务系统的API服务接口(Restful、WebService、Dubbo)按...

  • 聊聊如何自定义数据脱敏

    前言 什么是数据脱敏 数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护 常用脱敏规...

网友评论

      本文标题:业务API脱敏的思考

      本文链接:https://www.haomeiwen.com/subject/dfpagctx.html