我正在開發JSON/REST Web API,我特別希望第三方網站能夠通過AJAX調用我的服務。因此,我的服務正在發送着名的CORS標頭:何時安全啓用CORS?
Access-Control-Allow-Origin: *
這允許第三方網站通過AJAX調用我的服務。迄今爲止都很好。
但是,我的web api的一個子部分是非公開的,並且需要身份驗證(OAuth和access_token cookie是非常標準的東西)。在我的網站的這一部分啓用CORS是否安全?
一方面,如果第三方網站可能有一個也與我的服務的這部分交互的ajax客戶端,那將是很酷的。但是,首先出現同一起源政策的原因是,這可能是有風險的。您不希望任何後來訪問的網站能夠訪問您的私人內容。
我擔心的情況是,用戶通過網站或通過他信任的網站登錄我的web api,他忘記註銷。這是否允許每個其他網站,他後來利用現有的會話訪問他的私人內容?
所以我的問題:
- 是以往任何時候都安全,使非公開內容CORS?
- 如果啓用CORS的服務器通過cookie設置session_token,這個cookie會保存在CORS服務器或主網頁服務器的域下嗎?
請注意,您只能在希望他人從其他來源訪問的資源上發送CORS標頭。而且,您還可以將CORS訪問權限限制爲您期望使用的來源。 – 2012-03-15 03:52:26
Idealy,如果安全許可,我希望所有資源都可以從任何來源訪問。用戶仍然可以提供有效的憑證。我只想確保我不會爲惡意網站的跨站腳本攻擊打開大門。 – Jeroen 2012-03-15 04:23:16