当应用程序依赖于无状态认证(例如使用HMAC)时,是否需要使用CSRF保护?
例如:
我们有一个单页面应用程序(否则我们必须在每个链接上附加令牌:
<a href="...?token=xyz">...</a>
)。用户使用
POST /auth
进行身份验证。成功认证后,服务器将返回一些令牌。该令牌将通过JavaScript存储在单页面应用程序的某个变量中。
此令牌将用于访问受限URL,如
/admin
。该令牌将始终在HTTP头中传输。
没有HTTP会话,也没有Cookies。
据我所知,因为浏览器不会存储令牌,所以不应该存在跨站点攻击的可能性,因此它不能自动将其发送到服务器(使用Cookies/Session时会发生这种情况)。
我错过了什么吗?