zoukankan      html  css  js  c++  java
  • AJAX学习笔记——同源策略

    同源策略

    同源策略,所有浏览器都实行这个政策
    最初,它的含义是指,A 网页设置的 Cookie,B 网页不能打开,除非这两个网页“同源”。所谓“同源”指的是“三个相同”。

    • 协议相同
    • 域名相同
    • 端口相同

    同源策略的目的

    为了保证用户信息安全,防止恶意的网站窃取数据。(防止Cookie共享,比如用户的登录信息)

    限制范围

    随着互联网的发展,同源政策越来越严格。目前,如果非同源,共有三种行为受到限制。

    • 无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB。
    • 无法接触非同源网页的 DOM。
    • 无法向非同源地址发送 AJAX 请求(可以发送,但浏览器会拒绝接受响应)。

    解决无法读取非同源网页的 Cookie方法

    domain 属性可以解决因同源安全策略带来的不同文档的属性共享问题。

    domain 属性可返回下载当前文档的服务器域名。(即当前文档所在的服务器域名)
    Cookie 是服务器写入浏览器的一小段信息,只有同源的网页才能共享。如果两个网页一级域名相同,只是次级域名不同,浏览器允许通过设置document.domain共享 Cookie。
    因为浏览器通过document.domain属性来检查是否同源。
    另外,服务器也可以在设置 Cookie 的时候,指定 Cookie 的所属域名为一级域名,比如.example.com。
    这样的话,二级域名和三级域名不用做任何设置,都可以读取这个 Cookie。

    解决无法接触非同源网页的 DOM方法

    方法1:
    如果两个窗口一级域名相同,只是二级域名不同,那么设置document.domain属性,就可以规避同源政策,拿到 DOM。
    方法2:
    对于完全不同源的网站,目前有两种方法,可以解决跨域窗口的通信问题。

    • 片段识别符(fragment identifier)
    • 跨文档通信API(Cross-document messaging)

    解决无法读取非同源网页的LocalStorage方法

    跨文档通信API(Cross-document messaging)

    参考资料:https://wangdoc.com/javascript/bom/same-origin.html

  • 相关阅读:
    动态查询 母表和子表的 一种方法
    js的一些正则 整理 长期更新
    fmt 标签格式化 日期
    一些关于 checkbox的前台 jquery 操作 记录
    jQuery 追加元素的方法如append、prepend、before,after(转)
    (Oracle)DBMS_SYSTEM工具-01[20180510]
    MySQL->元数据[20180510]
    MySQL->复制表[20180509]
    MySQL->索引的维护[20180504]
    MySQL-ALTER TABLE命令学习[20180503]
  • 原文地址:https://www.cnblogs.com/songsongblue/p/11912559.html
Copyright © 2011-2022 走看看