我正在使用symfony和JWT令牌开发一个Web应用程序进行身份验证。为了防止XSS,JWT令牌存储在具有HttpOnly属性的cookie中。为了防止CSRF,我使用了随机csrf令牌。此令牌存储在cookie和JWT令牌(加密)中。我想知道的是,是否有必要在每个响应中更新csrf令牌?什么是最好的实施?
这是我的详细设置:
通常,无需在每次请求时更新CSRF令牌。
但是,让我们看看你的环境会发生什么:
因此,您不能将CSRF令牌放在cookie中,因为无论您是否更新它都是无用的。
如果您使用“单页面应用程序”,最好在Authorization
标头中传递JWT。这使得CSRF攻击变得不可能(注意anohter威胁)。
如果您使用“经典Web应用程序”,最好使用“经典”CSRF令牌和“经典”会话标识符。