首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过公共API防止数据扫描?

如何通过公共API防止数据扫描?
EN

Software Engineering用户
提问于 2016-11-15 16:38:04
回答 4查看 311关注 0票数 4

我们的客户(银行)需要发布一个web服务API,供第三方应用程序使用。安全性将涉及OAuth2和JWT (JSON令牌)。问题是,客户害怕第三方滥用他们不完全信任的发布的API(请不要对此发表评论)。一个基本的场景如下:

公共API包含一个操作IsOurCustomer(),如果此人在银行中有产品,该操作将返回true/false。随后的操作是CreateNewCustomer(),并在IsOurCustomer()返回false时调用。

银行担心第三方可能会通过顺序调用IsOurCustomer()来检查谁是或不是他们的客户,从而扫描他们的客户群(例如从公共州注册中心)。(我无法判断假定的损害是真实的,还是仅仅是偏执。)

有没有办法防止数据扫描的可能性?

我们提出了一些局部的解决方案,但没有一个完全缓解这个问题:

  1. 节流-很难设定正确的限制,这不会限制第三方公司的合法工作,但会防止他们同时滥用API。特别是当第三方有很多员工和足够的时间。第三方可以每天发放数千张(合理的)客户支票,这样他们每年就可以扫描100万人。
  2. 法律威胁-当检测到API滥用时(需要日志记录、监视)。
  3. 每个API调用的付款-超过约定的限额
  4. 启发式--例如,当调用IsOurCustomer()和CreateNewCustomer()的比率太高时发出警报。
  5. “数据防泄漏系统”--我不知道有任何可用的DLP用于我们的目的。
EN

回答 4

Software Engineering用户

发布于 2016-11-15 17:08:21

对我来说这听起来是合理的考虑。

您不会详细介绍第三方使用api的目的。

  • 但是,如果他们不应该知道谁是客户,并且不需要这些信息,那么就有一个简单的解决方案:
  • 删除IsOurCustomer()

让api的每个“租户”创建自己的客户,并在需要报告时将客户与银行客户私下联系起来。

也许您有一个更复杂的场景。

  • 第三方需要知道客户是否已经是客户,比如作为注册程序的一部分,但银行不想告诉他们
  • 要求第三方签署合同,声明他们只会将api中的信息用于特定目的。

在这些数据保护的日子里,这是相当普遍的。世行需要认识到,这是一个人的问题,而不是一个技术问题。

但是,也许你有一个更微妙的情况!

  • 第三方要求提供信息,以便能够执行银行规定的任务。但是,当法律部门看到它时,他们说银行不能合法地告诉客户这些信息。
  • 在这里你有点搞砸了。然而,也许你可以让第三方证明他们已经知道了你正在泄露的信息。例如: IsOurCustomer(string bankAccountNumber)
票数 3
EN

Software Engineering用户

发布于 2016-11-15 18:44:49

您可以考虑合并这两个操作。让CreateNewCustomer检查现有客户,并返回一条消息,说明它是现有的客户,并包含现有的客户id。这样,你就不能在没有创建新客户的情况下扫描一个大型数据库,这可能需要某种形式的电子邮件验证步骤,或者其他会引起注意的东西。

票数 1
EN

Software Engineering用户

发布于 2016-11-15 21:54:30

这是一个严重的风险,我认为,但有一个方法可以让你信任某些人。

我假设第三方有一个合法的需要知道某人是否是您的客户。

我会给每个第三方一个他们负责的标识符,该标识符将他们标识为API。然后,此标识符链接到一个非规范化表,该表引用客户的唯一id。如果非正规化组合不在表中,那么对于所有意图和目的,第三方都不知道客户的存在。

因此,您有与第三方1有关系的客户A,而不是第三方2。很自然,您只想让第三方1看到这个客户,所以当第三方2打电话给客户A的信息,但是他们的id,他们会得到这个客户不存在的回复(或者你想给出的任何错误)。然而,第三方1可以安全地调用相同的API,并获得有关客户的信息。

编辑:我还假设您正在对这些端点进行适当的安全保护,这样只有您信任的第三方才能访问它们,而不是街上的某个随机的家伙。由于这些数据可能是FINRA规范的,所以您有义务保护它。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/336110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档