请考虑以下情况。
业务所有者将首先选择单个客户,从那里开始,他的会话将绑定到选定的客户。
我有一组微服务,每个服务都需要一个Customer-ID来处理。即
GET /resource-a/{customer-id}POST /resource-b/{customer-id}Customer-Id被认为是一种敏感信息,因此它是以加密的形式存在的。
然而,它仍然容易受到特权升级的影响。也就是说,一个企业主可能会错误地通过书签等方式共享加密的客户id,这样企业所有者就可以访问未映射到他的客户的详细信息。(不完全是特权升级?)
Customer-Id (因为没有有状态的微服务/会话)。在这种情况下,我如何防止权限升级?
发布于 2018-10-25 03:45:56
考虑到您不想在服务器端这样做,我只看到了另外两种可能性:
security through obscurity,不要在面向用户的情况下公开Customer-Id (使其出现在地址栏、UI、浏览器历史记录等中的任何操作)。这不会修补您的问题,也不会保护您免受专用攻击者的攻击。虽然它在某种程度上可能起作用。customer-id's存储在令牌本身上。然后,当您验证会话令牌服务器端时,您也将同时获得授权.这根本不需要付出任何性能上的代价。尽管如此,它可能只是作为一种解决方案,只要您不会有很多绑定到用户的customer-ids (显然,您不希望整个DB在令牌中)。https://security.stackexchange.com/questions/196086
复制相似问题