如何保护Auth0身份验证的REST服务免受XSRF和会话劫持的影响?

时间:2018-08-30 19:00:30

标签: csrf auth0 session-hijacking

常见情况:SPA + REST。如果要放弃Auth0并使用JWT对Web用户进行身份验证,则必须将服务器登录时提供的XSRF令牌存储在Cookie中,并将其与JWT一起发送到请求标头中。

在相关的官方Auth0指南https://auth0.com/docs/architecture-scenarios/spa-api中,根本没有提到XSRF令牌。如果有人从用户那里窃取了访问令牌怎么办?他们可以为该用户访问我的REST API吗?

Auth0还有另一本指南Preventing Cross-site Request Forgery (XSRF or CSRF),但是它很简短,而且我没有看到它如何解决我描述的问题。

1 个答案:

答案 0 :(得分:0)

Auth0用来防止CSRF攻击的策略是通过使用nonce,他们称之为state parameter。该state与身份验证请求一起生成,然后用于将请求与从身份验证接收到的响应相关联。 (来自Auth0 docs on how to mitigate CSRF attacks)

相关信息from the Auth0 docs on the state parameter

  

与将要启动的每个身份验证请求关联的唯一且不可猜测的值。正是这种独特且不可猜测的值,您可以通过确认来自响应的值是否与您期望的值(启动请求时生成的值)相匹配,来防止攻击。

如果您在SPA中使用Auth0.js,则会自动为您处理此随机数或状态生成和验证。