REST API中用于处理敏感数据的模式

时间:2018-08-09 02:26:46

标签: spring rest api security spring-boot

我有一个REST资源,其中包含GET“已屏蔽”敏感数据,例如该API由应用程序用户界面使用

获取/ api / customer

{
"Name":"John"
"AccountNumber" :"XXXXX123"
}

此客户api通过另一个REST API依次调用记录系统。记录REST调用系统非常昂贵,并且支持非常低的TPS。所以我们不能经常使用 当客户执行操作时,必须将帐号传递给另一资源 POST / api / transactions

Input
{
  "AccountNumber":"XXXXX123"....
}

Output
{
  "transaction":"something"....
}

记录系统无法理解被屏蔽的AccountNumber。所以我能想到的选择是-

  • 在服务器会话中设置未屏蔽的帐户,并将密钥和已屏蔽的帐户传递给客户API的前端。前端将在调用事务API时传递密钥
  • 使用服务器缓存而不是服务器会话
  • 使用客户标识符密钥和SALT(如通过反向代理在每个请求中注入的客户属性)对帐号进行加密,将加密的帐号传递给前端。根据客户的操作,前端会将加密的帐号传递给后端。后端将解密该字符串,并提取帐号和客户标识符,并将客户标识符与反向代理注入的标识符匹配。

选项1和2肯定是较差的设计。我倾向于选择3。

这种要求的完善模式是什么?

0 个答案:

没有答案