首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反对微服务特权升级的强硬措施

反对微服务特权升级的强硬措施
EN

Security用户
提问于 2018-10-21 08:50:06
回答 1查看 218关注 0票数 1

请考虑以下情况。

  • 系统有一组企业主(即系统的用户)。
  • 每个企业主都被映射到一组客户。
  • 企业主登录到系统以便管理他们的客户。

业务所有者将首先选择单个客户,从那里开始,他的会话将绑定到选定的客户。

我有一组微服务,每个服务都需要一个Customer-ID来处理。即

  • 微服务A公开GET /resource-a/{customer-id}
  • 微服务B公开POST /resource-b/{customer-id}
  • 等。

Customer-Id被认为是一种敏感信息,因此它是以加密的形式存在的。

然而,它仍然容易受到特权升级的影响。也就是说,一个企业主可能会错误地通过书签等方式共享加密的客户id,这样企业所有者就可以访问未映射到他的客户的详细信息。(不完全是特权升级?)

  • 我希望避免对业务所有者进行客户id的服务器端授权,因为众所周知这是一个缓慢的操作,90%的APIs将不得不重复此授权过程。
  • 所有的微服务都是无状态的,所以不可能用会话id作为密钥加密Customer-Id (因为没有有状态的微服务/会话)。
  • 而且,我不认为在网关上进行这种授权是个好主意,因为它并不打算执行这样的业务逻辑。

在这种情况下,我如何防止权限升级?

EN

回答 1

Security用户

发布于 2018-10-25 03:45:56

考虑到您不想在服务器端这样做,我只看到了另外两种可能性:

  • 使用security through obscurity,不要在面向用户的情况下公开Customer-Id (使其出现在地址栏、UI、浏览器历史记录等中的任何操作)。这不会修补您的问题,也不会保护您免受专用攻击者的攻击。虽然它在某种程度上可能起作用。
  • 使用无状态自包含令牌(例如。用于生成用户会话。并将绑定到该用户的所有customer-id's存储在令牌本身上。然后,当您验证会话令牌服务器端时,您也将同时获得授权.这根本不需要付出任何性能上的代价。尽管如此,它可能只是作为一种解决方案,只要您不会有很多绑定到用户的customer-ids (显然,您不希望整个DB在令牌中)。
票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/196086

复制
相关文章

相似问题

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