• 浏览器的同源策略


    同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。

    同源的定义

    如果两个URL的协议(protocol)、主机(host)、端口(port,如果有指定的话)都相同的话,则这两个URL是同源。

    下表给出了与URLhttp://store.company.com/dir/page.html的源进行对比的示例:

    URL 结果 原因
    http://store.company.com/dir2/other.html 同源 只有路径不同
    http://store.company.com/dir/inner/another.html 同源 只有路径不同
    https://store.company.com/secure.html 失败 协议不同
    http://store.company.com:81/dir/etc.html 失败 端口不同(http:// 默认端口是80)
    http://news.company.com/dir/other.html 失败 主机不同

    如何允许跨源访问

    可以使用 CORS(Cross-Origin Resource Sharing,跨域资源共享)来允许跨源访问。CORS 是 HTTP 的一部分,它允许服务端来指定哪些主机可以从这个服务端加载资源。

    如何阻止跨源访问

    • 阻止跨域写操作,只要检测请求中的一个不可推测的标记(CSRF token)即可,这个标记被称为 Cross-Site Request Forgery (CSRF) 标记。你必须使用这个标记来阻止页面的跨站读操作。
    • 阻止资源的跨站读取,需要保证该资源是不可嵌入的。阻止嵌入行为是必须的,因为嵌入资源通常向其暴露信息。
    • 阻止跨站嵌入,需要确保你的资源不能通过以上列出的可嵌入资源格式使用。浏览器可能不会遵守Content-Type头部定义的类型。例如,如果您在HTML文档中指定<script>标记,则浏览器将尝试将标签内部的 HTML 解析为JavaScript。 当您的资源不是您网站的入口点时,您还可以使用CSRF令牌来防止嵌入。

    跨域资源共享

    CORS (Cross-Origin Resource Sharing,跨域资源共享) 是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。

    同源安全策略 默认阻止“跨域”获取资源。但是 CORS 给了web服务器这样的权限,即服务器可以选择,允许跨域请求访问到它们的资源。


    参考文献:
    https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

  • 相关阅读:
    ES6新特性:使用export和import实现模块化
    常见Linux/Unix开发辅助命令什锦
    Spark高速上手之交互式分析
    Lua中的元表与元方法
    explicit 构造函数
    【排序】基数排序(计数排序、桶排序)
    拓展训练—心得体会
    poj3411--Paid Roads(bfs+状压)
    点击单选button后的文字就可以选定相应单选button
    hdu 2349 最小生成树
  • 原文地址:https://www.cnblogs.com/uakora/p/12639767.html
Copyright © 2020-2023  润新知