美文网首页
浏览器同源策略是什么?没有同源策略会怎么样?

浏览器同源策略是什么?没有同源策略会怎么样?

作者: logoss | 来源:发表于2019-03-19 19:57 被阅读0次

    同源策略,它是由Netscape提出的一个著名的安全策略。
    现在所有支持JavaScript 的浏览器都会使用这个策略。

    同源的定义

    同源是指域名,协议,端口三个都相同。
    下面的网站同源吗?

    1. http://www.jianshu.comhttp://jianshu.com
      不同源,因为域名不同
    2. http://www.bilibili.tvhttp://www.bilibili.com
      不同源,因为域名不同
    3. http://localhost:3000http://localhost:3001
      不同源,因为端口不同
    4. http://qq.comhttps://qq.com
      不同源,因为协议不同
    5. https://www.pixiv.nethttps://www.pixiv.net/manage/illusts/
      同源,因为域名,协议,端口都相同

    不同源会怎么样?

    对于js脚本有限制。
    主要表现在3点
    (1) 无法用js读取非同源的Cookie、LocalStorage 和 IndexDB 无法读取。
    (2) 无法用js获取非同源的DOM 。
    (3) 无法用js发送非同源的AJAX请求 。更准确的说,js可以向非同源的服务器发请求,但是服务器返回的数据会被浏览器拦截。

    是谁来执行同源策略的?

    同源策略是由浏览器来执行。所有的限制都是浏览器的作用。这是浏览器为了保护用户的数据安全而采取的策略。

    同源策略如何保护用户数据安全?没有同源策略会怎么样?

    同源策略对于js的限制有3点,我们一点一点来说。

    (1) 无法用js读取非同源的Cookie、LocalStorage 和 IndexDB 无法读取。

    这条很好理解。
    为了防止恶意网站通过js获取用户其他网站的cookie。

    (2) 无法用js获取非同源的DOM 。

    如果没有这一条,恶意网站可以通过iframe打开银行页面,可以获取dom就相当于可以获取整个银行页面的信息。

    (3) 无法用js发送非同源的AJAX请求 。

    这一条我一开始也没搞懂为什么。如果没有这一条会有什么危害?
    看了这篇文章后我终于懂了https://blog.csdn.net/hcrw01/article/details/84289109
    我把这部分复制过来放在这里。

    假设有一个黑客叫做小黑,他从网上抓取了一堆美女图做了一个网站,每日访问量爆表。
    为了维护网站运行,小黑挂了一张收款码,觉得网站不错的可以适当资助一点,可是无奈伸手党太多,小黑的网站入不敷出。
    于是他非常生气的在网页中写了一段js代码,使用ajax向淘宝发起登陆请求,因为很多数人都访问过淘宝,所以电脑中存有淘宝的cookie,不需要输入账号密码直接就自动登录了,然后小黑在ajax回调函数中解析了淘宝返回的数据,得到了很多人的隐私信息,转手一卖,小黑的网站终于盈利了。
    如果跨域也可以发送AJAX请求的话,小黑就真的获取到了用户的隐私并成功获利了!!!

    如何跨域请求

    这篇主要讲为什么要有同源策略。
    至于怎么跨域访问,常用的方法有CORS,JSONP和iframe。
    搜索跨域请求有很多文章。

    相关文章

      网友评论

          本文标题:浏览器同源策略是什么?没有同源策略会怎么样?

          本文链接:https://www.haomeiwen.com/subject/gkqimqtx.html