JS跨域的理解

首先我们要理解什么是JS跨域的由来!
我是这样理解的,因为HTTP是无状态的协议,所谓无状态的就是不像FTP协议有连接,断开之分,用户每次打开一个网页,都可以理解为一次独立的访问,这样就造成了相同网站上的不同网页都需要输入用户名和密码。为了解决这个问题,就要考虑使用Cookie,绝大部分网站都会进行一些cookie访问,那么着就造成了一个危险:别的网站可以通过这些用户名和密码,“登陆“你的账号去进行一些操作。为了阻止这个问题,浏览器就会限制JS去访问不同域的网站资源。
这里需要注意两点,第一,这个域的理解,这个域就是URL的首部,指的是window.location.protocol +window.location.host。它不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。
比如说如果协议不同,端口不同,或者说用的是IP地址,那么都不算是同域;

也可以理解为源由规则+主机+端口组成,注意不包括路径

第二,虽然浏览器默认禁止了跨域访问(访问域的资源),但并不禁止在页面中引用其他域的JS文件(理解为不允许脚本主动的去进行跨域访问,但是可以被动被别人引用),并可以自由执行引入的JS文件中的function(包括操作cookie、Dom等等)。所以我现在的理解就是在开发网站时,一定要严格过滤从外面引入的JS脚本。这里我们可以参考去年新浪微博的遭到XSS攻击的事情,这就是因为新浪微博广场页面的XSS过滤不严导致的。这也是跨域攻击的方法之一!就是我们通过点击某个URL,将恶意的JS脚本注入,这个脚本有可能自动进行很多操作。XSS的方法二就是使用外部攻击,详见[url]http://coolshell.cn/articles/4914.html[/url]那么为了解决这个问题就提出了各种跨域的方法


详见 [url]http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值