日!继40781534 之后,接受的答案是设置SameSite=Lax:
即使用户的请求本身是从我的 OAUTH2 提供程序上的登录页面SameSite=Strict重定向,我该如何设置重定向到自己的 cookie,以便我可以从 Chrome 取回 cookie 56.0.2924.87?
完整的请求链是:
POST https://provider.com/callback? 302 FOUND和:
Location: https://me/login?code=xxx&state=yyy
Run Code Online (Sandbox Code Playgroud)GET https://example.com/login?code=xxx&state=yyy? 302 FOUND或303 SEE OTHER(似乎无关紧要)与:
Location: https://example.com/destination
Set-Cookie: sid=zzzz; Secure; HttpOnly; SameSite=Strict; Path=/
Run Code Online (Sandbox Code Playgroud)GET https://example.com/destination? 401 GET OFF MY LAWN因为浏览器没有显示sidcookie
GET https://example.com/destination? 200 OK如果我刷新,因为网站是相同的,我的浏览器会显示sidcookie
我欣赏提出的CSRF潜力sid,以/destination不被用户的最后一次加载页面的一般情况example.com,但我只是刚刚设置的/login,而我是一个现在重定向到/destination。
当然,我可以设置SameSite=Lax,但是如果有人可以找到某种方法通过错误形成 URL …