将JWT存储在可通过Javascript访问的cookie中是否危险

时间:2019-01-22 21:45:22

标签: security cookies jwt

换句话说,在没有 httponly标志的cookie中拥有不包含任何敏感信息的JWT危险吗?我了解主要的安全问题是XSS攻击。因此,由于Javascript可以访问cookie,因此攻击者可以潜在地访问令牌。但是,由于JWT中没有任何敏感信息,因此劫持会话是唯一的危害吗?

问题的症结在于,我希望JWT位于Javascript可访问的cookie中,因为我希望能够访问令牌声明以限制ui中用户的功能。

所以对JWT使用 non -httponly cookie还是将JWT放在httponly cookie中,然后单独做一个 non -httponly是一个更好的主意吗?用于存储用户凭据的Cookie?

1 个答案:

答案 0 :(得分:0)

尽管JWT不包含任何敏感信息,但令牌本身是敏感的。 JWT通常用作承载令牌,这意味着它们是(可能受时间限制)凭证,拥有该令牌的任何人都可以使用它来访问为该令牌发行的任何资源。

因此能够通过成功的XSS获得令牌的攻击者将能够冒充受害者向服务器发出请求。这就是您所说的“仅”会话劫持。我不确定您为什么说“仅”。通常,会话劫持非常严重; o)

我认为,一种更安全的方法是使JWT cookie仅使用HTTP,并拥有一个单独的cookie,其中包含用于限制UI功能的信息。

顺便说一句,以这种方式限制UI本身不应被视为一种有效的安全措施,因为除非可以在服务器端强制实施UI限制,否则几乎可以肯定可以绕过UI限制。不过,可以将其用于用户界面的个性化