Please enable JavaScript.
Coggle requires JavaScript to display documents.
同源策略 - Coggle Diagram
同源策略
限制范围
Cookie、LocalStorage 和 IndexDB 无法读取。
DOM 无法获得。
AJAX 请求不能发送。
如何进行规则的规避呢
Cookie
解决方法:当两个网页一级域名相同,二级域名不同的话,当设置document.domain来共享Cookie
缺点:这种方法只适用于 Cookie 和 iframe 窗口,LocalStorage 和 IndexDB 无法通过这种方法,规避同源政策,而要使用下文介绍的PostMessage API
iframe
表现
如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。
解决方案
如果两个窗口一级域名相同,只是二级域名不同,那么设置上一节介绍的document.domain属性,就可以规避同源政策,拿到DOM。
对于完全不同源的网站,目前有三种方法,可以解决跨域窗口的通信问题。
片段识别符(fragment identifier)
window.name
跨文档通信API(Cross-document messaging, postMessage)
通过postMessage去读取别的窗口的LocalStorage
AJAX
表现:同源政策规定,AJAX请求只能发给同源的网址,否则就报错。
JSONP
WebSocket
CORS
含义
作用方面
协议相同
域名相同
端口相同
同源策略的含义指a网页设置的Cookie,B网页不能打开,除非这两个网页同源
目的
为了保证用户信息的安全,防止恶意的网站窃取数据,限制不同源的网站可以相互读取cookie。cookie里通常保存了一些重要信息,所以我们不能允许他们相互拿取。