在服务器上使用“Access-Control-Allow-Origin:*”设置并同时使用基于会话的cookie是否安全?

时间:2011-11-14 05:16:46

标签: security session cookies http-headers express

我想允许客户端应用程序向中央数据服务器发出跨域JSON请求。客户端和服务器将位于不同的域中。

要解决“Access-Control-Allow-Origin不允许使用Origin null”。错误,我有服务器设置:

Access-Control-Allow-Origin: *

头。

我在这里(http://www.w3.org/wiki/CORS_Enabled)看到跨域只应用于“不需要基于cookie或基于会话的身份验证的公共数据”。

使用Access-Control-Allow-Origin:*标头时,使用基于会话/ cookie的身份验证是不安全的?如果不是为什么?

谢谢。

1 个答案:

答案 0 :(得分:4)

CORS规则集Access-Control-Allow-Origin: *不是完整的同源策略绕过,并且可能是安全的。

在每个页面上设置此标头允许unauthenticated resource-requests。这些请求不会隐式包含身份验证cookie,因此不能使用跨站点XHR来说明;阅读您的电子邮件,或阅读远程域上的CSRF令牌 - 因为这些请求需要cookie或承载令牌。