【发布时间】:2015-02-13 03:27:52
【问题描述】:
所以我有一个 REST api。我有一个 C# 客户端,可以通过 https 使用用户名/密码登录。它以字符串形式返回令牌。我存储该令牌,然后当我进行进一步的 API 调用时,我可以创建一个 Authorization 标头:
client.Headers.Add("Authorization", "Bearer" + token);
但是令牌被返回并作为字符串存储在内存中。这不会使其成为令牌在内存转储中可见的安全问题吗?
【问题讨论】:
-
好像你正在与客户端共享令牌,并且客户端永远不能被信任,那么安全问题是什么?
-
那么如果token被复制了,那么根据token的到期时间,它不能被黑客使用吗?
-
假设 - 这与没有简单解决方案的“会话劫持攻击”相同。也就是说,如果客户端计算机遭到入侵,那么获取未加密的原始凭据比尝试会话劫持更有可能(也更容易)。这不是一个值得担心的问题。如果有证据表明这对您的应用程序来说是一个真正的问题,那么您能做的最好的事情就是在每个请求上重新生成令牌(但要注意无序到达的客户端请求)。