赞
踩
一个 URL 有三部分组成:协议、域名(指向主机)、端口,只有这三个完全相同的 URL 才能称之为同源。同源策略控制不同源之间的交互,例如在使用XMLHttpRequest
时则会受到同源策略的约束。
<script src="..."></script>
。<link rel="stylesheet" href="...">
。<img>
标签展示的图片。video
和 audio
播放的多媒体资源。@font-face
引入的字体。iframe
载入的任何资源。document.domain
,让子域名和父域名通过同源策略的检测。// 例如:子域名下面的页面 http://store.company.com/dir/other.html
document.domain = "company.com"; // 脚本代码中修改
fetch("http://company.com/dir/page.html") // 再去访问父域名下面的页面,可以不被跨域拦截
访问存储在浏览器中的数据,如 localStorage 和 IndexedDB,是以源进行分割。每个源都拥有自己单独的存储空间,一个源中的 JavaScript 脚本不能对属于其它源的数据进行读写操作。
Cookies 使用不同的源定义方式。一个页面可以为本域和其父域设置 cookie,只要是父域不是公共后缀(public suffix)即可。
// 服务端返回的 Access-Control-Allow-Origin 响应头字段进行控制
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: https://foo.example
XSS:跨站脚本,但重点不在于跨站点,而是在于脚本的执行。
XSS是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
常见的XSS攻击有三种:
反射型XSS攻击:
DOM-based型XSS攻击:
存储型XSS攻击:
Cross-site request forgery,跨站点请求伪造,攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。常用于盗取账号、转账、发送虚假消息等。
CSRF攻击攻击原理及过程如下:
最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
目前防御 CSRF 攻击主要有三种策略:
安全沙箱如何影响到各个模块功能的呢?
站点隔离(Site Isolation)
所谓站点隔离是指 Chrome 将同一站点(包含了相同根域名和相同协议的地址)中相互关联的页面放到同一个渲染进程中执行。
由于最初都是按照标签页来划分渲染进程的,所以如果一个标签页里面有多个不同源的 iframe,那么这些 iframe 也会被分配到同一个渲染进程中,这样就很容易让黑客通过 iframe 来攻击当前渲染进程。而站点隔离会将不同源的 iframe 分配到不同的渲染进程中,这样即使黑客攻击恶意 iframe 的渲染进程,也不会影响到其他渲染进程的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。