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需要搭建环境吗

哪些游戏是用javascript制作的?

javascript有没有二维数组

javascript中怎么将字符串转为数组

vue的源码解析(代码示例)

学习在 javascript 中正确处理变量

javascript怎么移除属性

javascript如何关闭浏览器事件

javascript怎么获取元素并删除

javascript如何删除string里某个字符

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




打赏

取消

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

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

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

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

评论

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