隐性转发frameset访问parent标题跨域是什么问题

浏览器安全的基石是"同源政策"()很多开发者都知道这一点,但了解得不全面

本文详细介绍"同源政策"的各个方面,以及如何规避它

/dir/,端口是80(默认端口可以省略)它的同源情况如下。

现在A网页通过脚本设置一个 Cookie。


B网页就可以读到这个 Cookie


另外,服务器也可以在设置Cookie的时候指定Cookie的所属域名为一级域名,比如.; path=/

这样的话二级域名和三级域名不用做任何设置,都可以读取这个Cookie

如果两个网页不同源,就无法拿到对方的DOM典型的例子是iframe窗口和/向子窗口发出请求。注意该请求的查询字符串有一个callback参数,用来指定回调函数的名字这对于JSONP是必需的。

服务器收到这个请求以後会将数据放在回调函数的参数位置返回。


上面代码中有一个字段是Origin,表示该请求的请求源(origin)即发自哪个域名。

正是因为有了Origin这個字段所以WebSocket才没有实行同源政策。因为服务器可以根据这个字段判断是否许可本次通信。如果该域名在白名单内服务器就会做出如丅回应。


服务端返回如下(返回时即执行铨局函数):

 

跨域是什么资源共享(CORS)

普通跨域是什么请求:只服务端设置Access-Control-Allow-Origin即可前端无须设置,若要带cookie请求:前后端都需要设置

需注意的是:由于同源策略的限制,所读取的cookie为跨域是什么请求接口所在域的cookie而非当前页。如果想实现当前页cookie的写入可参考下文:七、nginx反姠代理中设置proxy_cookie_domain 和 八、NodeJs中间件代理中cookieDomainRewrite参数的设置。

目前所有浏览器都支持该功能(IE8+:IE8/9需要使用XDomainRequest对象来支持CORS)),CORS也已经成为主流的跨域是什么解决方案

WebSocket protocol是HTML5一种新的协议。它实现了浏览器与服务器全双工通信同时允许跨域是什么通讯,是server push技术的一种很好的实现

我要回帖

更多关于 跨域是什么 的文章

 

随机推荐