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



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

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

那么,对JWT使用non-httponly cookie更好吗?还是在httponly cookie中制作JWT,然后单独使用non-httponlycookie来存储用户凭据?

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

因此,能够通过成功的XSS获得令牌的攻击者将能够模拟受害者向您的服务器发出请求。这就是您所说的"唯一"会话劫持。我不知道你为什么说"只有"。通常会话劫持是相当严重的;o)

正如你所说,在我看来,一种更安全的方法是使JWT cookie仅为HTTP,并有一个单独的cookie,其中包含用于限制UI中功能的信息。

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

最新更新