【同源策略(SOP——Same-Origin Policy)】
*
什么是同源策略?
同源策略( Same Origin Policy)是一种约定,它是浏览器最核心、最基本的安全功能。可以说web是构建在同源策略的基础上的,浏览器只是针对同源策略的一种实现。所谓同源是指域名,协议,端口相同。不同源的客户端脚本(Javascript、 Action Script)在没明确授权的情况下,不能读写对方的资源。
*
同源策略有什么用?
如果没有同源策略,那么在A.com加载过的脚本∫js),能够在未加载过这个脚本的B.com上的页面随意执行并被读取,可能造成页面混乱以及破坏,数据窃取等不安全行为(前端跨域安全)
*
如何判断同源不同源?
看域名,协议,端口这三样,具体实施就是,先看协议,是不是都是http(或都是其他,只要相同就好,http最大众化。)接着看域名,就是口语中说的网址(www.*****.com)是否相同,若www.前面有别的东西,或没有www.那就因主机不同而判定为不同源。最后看端口,除非专门写com:***否则一般都一样。
【内容安全策略(CSP)】
历史
它最早在火狐浏览器( Firefox4)中推出,英文全称“ Content-Security-Policy",是由安全专家Roberthanson最早提出的,其做法是由服务器端(htt响应)返回—个HTTP头,并在其中描述页面应该遵守的安全策略
*
什么是CSP?
主要以白名单的形式配置可信任的内容来源在网页中,能够使白名单中的内容正常执行(包含Js,CSS, Image等等)而非白名单的内容无法正常执行,从而减少跨站脚本攻击(XSS)当然,也能够减少运营商劫持的内容注入攻击。
CSP的使用
1.在前端标签设置
metahttp-equiv="content-security-policy"cOntent=“default-src’self,”>
2.在服务器设置
CSP的语法
配置相关策略,可以控制浏览器为该页面获取的资源。
Content-Security-Policy: default-src | script-src | style-src| img-src
script-src:外部脚本
style-src:样式表
img-src:图像
media-src:媒体文件(音频和视频)
font-src:字体文件
object-src:插件(比如Flash)
child-src:框架
frame-ancestors:嵌入的外部资源(比如< frame>、< iframe>、< embed>和< applet>)
connect-src:HTTP连接(通过XHR、WebSockets、EventSource等)
worker-Src: worker脚本
manifest-src: manifest文件
示例
Content- Security-Policy: default-src 'self ’
限制所有的外部资源,都只能从当前域名加载
Content-security-policy:default-src’self*.example.com
信任指定域资源
Content-security-policy:default-srchttps:/lonlinebankingjumbobank.com
该服务器仅允许通过Https方式并仅从onlinebankingjumbobank.com域名来访问文档。
CSP指令集
default-src
self cdn.example.com
默认策略可以应用于js文件/图片/css/ajax请求等所有访问
script-src
self js. example. com
定义js文件的过滤策略
style-src
self css.example.com
定义css文件的过虑策略
img.src
self img.example. com
定义图片文件的过滤策略
connect-src
self
定义请求连接文件的过滤策略
font-src
font.example.com
定义字体文件的过滤策略
object-sre
self
定义页面插件的过滤策略如< object>, :或者等元素
media-src
medla.example.com
定义媒体的过滤策略如 HTML6的< audio>,< video>等元素
frame-src
self
定义加载子frmae的策略
【浏览器沙箱&恶意网站拦截】
网页挂马
网页挂马指的是把一个木马程序上传到一个网站里面然后用木马生成器生一个网马,再上到空间里面!再加代码使得木马在打开网页时运行!
面对挂马,浏览器有哪些措施
A、黑名单(收集恶意网站,一旦发现有浏览器访问,就进行告警)
B、浏览器沙箱(让不可信的代码运行在一定的环境中,从而限制这些代码访问隔离区之外的资源。)
浏览器沙箱机制
沙箱设计的目的是为了让不可信的代码运行在一定的环境中,从而限制这些代码访问隔离区之外的资源。如果因为葉种原因,确实需要访问隔离区外的资源,那么就必须通过的指定的通道,这些通道会进行严格的安全检查,来判断请求的合法性。通道会采取默认拒绝的策略,一般采用封装AP丨的方式来实现。
沙箱遵循最小权限原则,毎个动作的权限都会被限制,仅能运算而无法写入文件和从敏感区域(即受保护区域)读取文件(如我的文档、桌面)。