美文网首页
浏览器安全机制

浏览器安全机制

作者: 秋名山车神12138 | 来源:发表于2019-08-07 12:32 被阅读0次

现代浏览器在网络安全领域面临诸多挑战,XSS攻击等攻击方式层出不穷,为了应对这种情况,浏览器默认引入了同源策略(Same Origin Policy)。意思是在浏览器中页面的资源访问受限在同一个域中,跨域访问默认是禁止的。

如何定义一个域? 由三部分组成:协议、域名、端口号。其中任一一个不同都认为是不同的域,包含各自独立的存储空间:localStorage,sessionStorage等。

但在实际情况中,浏览器跨域访问资源的需求同样是非常强烈的,不能因噎废食。因此标准组织同样推出了几种跨域访问资源的方案:

  1. CORS(Cross Origin Resource Sharing),翻译过来就是跨域资源访问。这是属于服务端配置允许哪些站点访问本站资源的方式,方式是通过在header中设置特定键值对来实现,字段如下:


    image.png
    image.png
  2. Cross Document Message ,俗称postMessage,跨文本消息传递。这种方式类似于订阅监听模式,给其他域发送一则message,然后其他域监听后执行相关回调。典型的例子如下:


    image.png

说完了跨域,继续之前的安全专题,还剩下两个重要的安全策略。一是CSP内容安全策略,二是HTTPS。前者有前端代码层面规定了本站允许访问的源,后者在协议层面保证了通信的安全。

CSP全名Content Security Policy,翻译过来就是内容安全策略。那如何实现呢?它的实现类似于CORS的header定义,也是规定了一些header头部字段,在于服务端通信的时候在接口中带上。具体字段如下:


image.png

那怎么用呢?需要将上面的字段统一拼接成字符串,用分号;分割,然后统一放在对应的字段后面,字段名称因为兼容性共3个。

  1. Content-Security-Policy:这是标准的名称,chrome和firefox都支持
  2. X-Webkit-CSP:主要给webkit的浏览器用
  3. X-Content-Security-Policy: Firefox用

最终呈现的接口效果示例如下:


http://content-security-policy.com

最后说到HTTPS,这块内容非常多,有协议,有加密算法,后面会有专题讨论下。这里简单介绍下HTTPS的特点,该协议基于SSL技术,构建在TCP协议之上,应用层HTTP协议之下。

相关文章

  • 浏览器安全机制

    前言 此文章是我最近在看的【WebKit 技术内幕】一书的一些理解和做的笔记。 而【WebKit 技术内幕】是基于...

  • 浏览器安全机制

    现代浏览器在网络安全领域面临诸多挑战,XSS攻击等攻击方式层出不穷,为了应对这种情况,浏览器默认引入了同源策略(S...

  • 跨域

    浏览器同源策略 浏览器出于安全考虑,默认情况下,只允许在本域接口下进行数据交互。这是浏览器的一种安全保护机制。主要...

  • 怎么在Chrome和Firefox浏览器中清楚HSTS设置?

    HSTS代表的是HTTPS严格传输安全协议,它是一个网络安全政策机制,能够强迫浏览器只通过安全的HTTPS连接(永...

  • 同源 & 跨域

    什么是同源策略? 同源策略:指的是浏览器的一种安全机制。浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源...

  • 跨域

    什么是同源策略 同源策略同源策略是浏览器的安全机制。浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客...

  • JavaScript实现网页全屏最大化,最小化

    fullscreen.js 使用全屏事件只能由用户行为触发,由于浏览器安全机制,不允许代码自动触发

  • 【转载】彻底理解浏览器的Http缓存机制

    转自:彻底理解浏览器的缓存机制(http缓存机制) 概述 浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是...

  • 7、cookie

    cookie:基于浏览器端的会话机制,不能跨域,不能跨浏览器,不能保证数据的安全性;支持过期;存储的大小受限 读c...

  • window.open()

    一、window.open()会被部分浏览器拦截的原因: 因为在chrome的安全机制里面,非用户触发的windo...

网友评论

      本文标题:浏览器安全机制

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