我正在开发JSON / REST Web API,为此,我特别希望第三方网站能够通过AJAX调用我的服务。因此,我的服务正在发送著名的CORS标头:
Access-Control-Allow-Origin: *
允许第三方站点通过AJAX调用我的服务。到目前为止一切都很好。
但是,我的Web api的一个子部分是非公开的,需要身份验证(带有OAuth和access_token cookie的相当标准的东西)。在我网站的此部分也启用CORS是否安全?
一方面,如果第三方网站可以具有也与我的服务的这一部分进行交互的ajax客户端,那将很酷。但是,首先要有一个相同的原产地政策的原因是这样做可能有风险。您不希望以后访问的任何网站都能够访问您的私人内容。
我担心的情况是,用户在网站或他信任的网站上登录我的Web api,却忘记了注销。这会允许他随后访问的所有其他网站使用现有会话访问其私人内容吗?
所以我的问题是:
- 在非公开内容上启用CORS是否安全?
- 如果启用了CORS的服务器通过cookie设置了session_token,该cookie是否保存在CORS服务器或主网页服务器的域下?