我知道基于cookie的身份验证。SSL和HttpOnly标志可以应用于保护来自MITM和XSS的基于cookie的身份验证。但是,将需要采取更多特殊措施来保护它免受CSRF的侵害。它们只是有点复杂。(参考)
最近,我发现JSON Web令牌(JWT)作为身份验证的解决方案非常热门。我知道有关编码,解码和验证JWT的知识。但是,我不明白为什么某些网站/教程告诉您使用JWT不需要CSRF保护。我已经阅读了很多,并尝试总结以下问题。我只希望有人可以提供JWT的概况,并阐明我对JWT误解的概念。
如果JWT存储在cookie中,则我认为它与基于cookie的身份验证相同,只是服务器不需要会话来验证cookie /令牌。如果不采取特殊措施,CSRF仍有风险。JWT是否存储在cookie中?
如果JWT存储在localStorage / sessionStorage中,则没有cookie,因此不需要防御CRSF。问题是如何将JWT发送到服务器。我在这里发现建议使用jQuery通过Ajax请求的HTTP标头发送JWT。那么,只有ajax请求可以进行身份验证吗?
此外,我还发现了另一个博客节目,使用“ Authorization header”和“ Bearer”发送JWT。我不了解博客谈论的方法。有人可以解释一下“授权标头”和“承载者”吗?这是否会使通过所有请求的HTTP标头传输的JWT?如果是,CSRF怎么样?
陪伴而非守候
慕虎7371278