js同源策略是什么
程序员文章站
2022-04-16 15:49:24
...
对于任何基于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同源策略是什么的详细内容,更多请关注其它相关文章!