js同源策略是什么


本文摘自PHP中文网,作者anonymity,侵删。

对于任何基于WEB的应用,最重要的就是安全性.JS中有各种安全检查以防止恶意脚本攻击你的机器,其中一些特定的安全手段在各种浏览器中都有采用.如:Mozilla有个完全独特的完全模型,涉及到了签署脚本和加强特权.我们要知道哪些安全手段是所有浏览器通用的,哪些是特定浏览器的.这样就能创建更安全的JS脚本.

同源策略;

JS只能与同一个域中的页面进行通讯.如:运行在 http://domain:port/app1/page.html;上的脚本不能和http://domain:port/app3/page.html;的浏览器窗口或iframe 进行交互.不能访问它的cookie,接收它的HTTP响应等(但它可以向任何其他源发送HTTP请求);AJAX 和 webservice 也受此策略管束.这种手段就叫同源策略;

两个脚本被认为是同源的条件是:

协议相同(比如都是http://)

端口相同(通常都是80)

域名相同

如果这三个条件中有任何一条不满足,就不允许两个脚本进行交互.如:www.mydomain.com上的脚本不能访问video.mydomain.com上的页面 ,因为两者的域名不同,虽然后者是前者的子域.同样,它也不能访问www.mydomain.com:8080上的页面 ,因为端口不同,也不能访问about:blank 因为协议不同(后者不是http://)

同源策略带来的影响:

它影响了与BOM,DOM间的交互.如:不可以访问不同来源的任何页面的document对象,也就是说不能访问其中任何DOM结构.如:

页面上有两个iframe 分别引用了不同源;

alert(frames[1].location.href);

alert(frames[1].document.location.href);//失败

window 和 document 都有一个 location 对象的属性.如果在与框架页不同源的页面中运行这两行代码,第二行会报错.

以上就是js同源策略是什么的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript中如何替换字符串?3种方法介绍

javascript求字符串长度的方法是什么

javascript怎么跳出循环

javascript中标识符的含义是什么

javascript实现utf-8编解码

javascript如何实现跳转新页面

详解javascript中的作用域和作用域链

javascript字符串如何转json

javascript区不区分大小写

javascript字符串怎么替换字符

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...