CORS,withCredentials和第三方cookie

时间:2014-09-16 00:02:04

标签: cookies cross-domain cors same-origin-policy

我正在尝试进行CORS GET以及随之发送cookie。我已在服务器中设置了所有标头(access-control-allow-originaccess-control-allow-credentialsaccess-control-allow-headers),并在jquery ajax请求中使用withCredentials: truecrossDomain: true 。当我告诉我的浏览器允许第三方cookie时,一切正常。有没有办法这样做而不强迫访问者允许第三方cookie?我甚至尝试重定向用户并重定向回来,但CORS将拒绝发送cookie。 :/

我已尝试通过ajax以及iframe执行CORS请求。

1 个答案:

答案 0 :(得分:2)

我认为这是不可能的。在此查看我的(旧的但相关的)blog post。 唯一的防弹方法是使用第一方cookie(即顶层窗口中的打开窗口,如单独的选项卡,或重定向当前窗口)。

在某些情况下,没有必要。浏览器对第三方cookie的概念略有不同,默认行为也不同。 This post对这些细节有一个很好的概述。因此,在某些情况下,您可以使用技巧来启用(或至少检测)页面上的cookie。

其他解决方法包括将一个服务器放在另一个服务器的子域(子域通常不被视为第三方),或更改流,以便通过除cookie之外的其他方式对用户进行身份验证。