1. 程式人生 > >跨域資源共享和同源策略

跨域資源共享和同源策略

通過XHTTPRequest對不同的域進行訪問將無法獲取響應資料,這一原則稱為同源策略。
同源策略主要是為了安全方面考慮,通過schema(http、https等)、主機、埠號的組合來判斷是否同源。其中有兩種解決辦法

  • jsonp,這是一種規避同源策略的方法,在安全方面有很多問題,使用時要認真考慮。詳情見
  • 跨域資源共享,簡稱CORS,是比jsonp更加安全,而且還是正式的規範。

CORS

當實施CORS的時候,客戶端首先要傳送一個名為Origin的請求訊息首部。該首部來指定源。
服務端儲存著允許訪問的源的清單,服務端去清單中查詢是否有Origin指定的源,如果在,服務端就會在Access-Control-Allow-Origin響應訊息首部裡放入和請求訊息的Origin首部相同的源並返回。

CORS與使用者資訊認證

CORS中傳送使用者認證資訊時,必須釋出追加的HTTP響應資訊首部。
服務端在收到認證資訊,需要將

Access-Control-Allow-Credentials: true

來告知客戶端“已識別所傳送的認證資訊”,如果不,瀏覽器就會直接拒絕伺服器傳送的響應資訊。

雖然很操蛋,但是很安全!