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

sai*_*sjd 6 security cookies session http-headers express

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

为了解决"Access-Control-Allow-Origin"不允许"Origin null".错误,我有服务器设置:

Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

头.

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

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

谢谢.

roo*_*ook 4

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

在每个页面上设置此标头允许未经身份验证的资源请求。身份验证 cookie 并未隐式包含在这些请求中,因此不能使用跨站点 XHR;读取您的电子邮件,或读取远程域上的 CSRF 令牌 - 因为这些请求需要 cookie 或不记名令牌。