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