• 浅析浏览器同源策略


    浏览器安全以同源策略为基础,理解同源策略才能把握客户端安全本质

    web是建立在同源策略之上的,浏览器只是针对同源策略的一种实现

    同源策略

      浏览器的同源策略,限制了来自不同源的“document”和脚本

      判断资源是否同源,以下情况认为同源、非同源:

    URL outcome reason
    http://store.company.com/dir/a.html 同源  
    http://store.company.com/dir/b.html 同源  
    http://store.company.com:8080/dir/a.html 端口号
    https://store.company.com/dir/a.html 协议
    http://news.company.com/dir/a.html 域名(ip)

      影响“源”的因素:host(域名、IP),端口,协议

      特别注意:

      在a.com中执行如下代码

    <script src="http://b.com/b.js"></script>

      试问,b.js的源是谁?答案是a.com

      虽然从b.com中加载了b.js,但是b.js是在a.com中运行的,因此对当前打开的界面(a.com),b.js的源是a.com

    带src属性的标签的同源策略

      <script>、<img>、<iframe>、<link>等标签带有src属性,可以跨域加载资源,不受同源策略限制

      这些标签加载时,实际上是浏览器发起了一个GET请求

      不同于XMLHttpRequest,通过src加载资源的标签,浏览器限制了JavaScript的权限,使其不能读、写返回的内容

      比如,通过CDN加载jQuery,就无法读写其返回的内容

    XMLHttpRequest对象的同源策略

      XMLHttpRequest对象不能跨域访问资源,因此在ajax开发中要注意跨域问题

      但是近年W3C制定了XMLHttpRequest对象跨域访问的标准:

        通过目标域返回的HTTP头来授权是否允许跨域访问【这个跨域访问方案的基础是:JavaScript无法控制HTTP头】

            

    浏览器沙箱模型(SandBox)

      “挂马” :在网页中插入一段恶意代码,利用浏览器漏洞执行代码的攻击方式

      Chrome是第一个采取多进程架构的浏览器(不是多线程,是多进程);多进程架构讲浏览器各个功能模块分开,各个浏览器实例分开,当一个进程崩溃时,不会影响到其他的进程

      Chrome主要进程分为:浏览器进程,渲染进程,插件进程,扩展进程。插件进程如:flash,java,pdf等与浏览器进程严格隔离

      SandBox 即沙箱,SandBox泛指“资源隔离模块”

    恶意网址拦截

      工作原理:浏览器周期性的从服务器端获取一份最新的恶意网址的黑名单,如果用户上网的网址在此名单中,浏览器给出警告

      恶意网站分类:

    • 挂马网站 ,网页中包含的恶意脚本对用户进行攻击
    • 钓鱼网站, 模仿知名网站界面

      PhishTank 是免费提供恶意网址黑名单的组织,名单由各地志愿者提供,更新频繁

     

     

  • 相关阅读:
    visual studio 注释
    EF Core导航属性
    【转】前端UI框架小汇总
    C#三种定时器的实现
    【转】自学MVC看这里——全网最全ASP.NET MVC 教程汇总
    【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
    【转】c# WebApi之解决跨域问题:Cors
    优秀.NET开源项目
    Linux简介及最常用命令
    C#中使用Socket实现简单Web服务器
  • 原文地址:https://www.cnblogs.com/RocketV2/p/5796595.html
Copyright © 2020-2023  润新知