同源策略

定義

同源(同域)指的是三個相同:協議,域名,端口ajax

第一:若是是協議和端口形成的跨域問題「前臺」是無能爲力的,(只能經過後臺實現)
第二:在跨域問題上,域僅僅是經過「URL的首部」來識別而不會根據域名對應的IP地址是否相同來判斷。
「URL的首部」能夠理解爲「協議, 域名 和 端口 必須匹配」。跨域

clipboard.png

目的

爲了保證用戶信息的安全,防止惡意網站竊取數據
Cookie 每每用來保存用戶的登陸狀態,若是用戶沒有退出登陸,其餘網站就能夠冒充用戶,隨心所欲。由於瀏覽器同時還規定,提交表單不受同源政策的限制
因此同源策略很是重要,否則cookie能夠共享,互聯網沒有安全可言。瀏覽器

限制範圍

非同源:安全

  1. Cookie(window.domain)服務器

  2. LocalStorage(window.postMessage)和IndexDB沒法讀取cookie

  3. DOM沒法獲取(iframe和window.open打開的窗口)(window.domain)(window.postMessage)dom

  4. AJAX請求不能發送post


規避限制一:Cookie
採用document.domain網站

規避限制二:iframe
採用document.domainspa

規避限制三LocalStorage
採用window.postMessage方法

規避限制四:AJAX
同源政策規定,AJAX請求只能發給同源的網址,不然就報錯。
除了架設服務器代理(瀏覽器請求同源服務器,再由後者請求外部服務),有三種方法規避ajax限制。
JSONP
WebSocket
CORS

跨域方法

詳見跨域方法(我的整理版本)

相關文章
相關標籤/搜索