浏览器特性与安全策略

同源策略

同源策略规定:不同域的客户端脚本在没有明确授权的情况下,不能读写对象的资源。

同源和异源

不同域

  • 协议不同(HTTP与HTTPS)
  • 域名不同(顶级域,www域和子域)
  • 端口不同(比如80端口和81端口)

同域

  • 多了目录,符号协议,域名,端口都相同

网页授权

通过HTTP响应头返回字段设置的,设置字段如下:Access-Controll-Allow-Origin: http://www.demo.com

沙盒框架(Sandboxed frame)

  • 是对常规<iframe>表现行为的扩展,它能让顶级页面对其嵌入的子页面及这些子页面的子资源设置一些额外的限制

  • 通过<iframe>的参数实现限制

  • Allow-scripts :是否允许执行javascript脚本,没有则不允许
  • Allow-forms : 是否允许使用form表单,没有则不允许
  • Allow-top-navigation : 是否允许嵌入子页面控制顶级窗口的地址跳转,没有则不允许
  • Allow-same-origin : 是否允许访问同源数据,没有则不允许

Flash安全沙箱

  • 分为本地沙箱与远程沙箱
  • 类似同源策略,在同一域内的资源会被放到一个安全组下,称为安全沙箱
  • Web站点通过crossdomain.xml文件配置可以提供允许的跨域访问本域上内容的权限(放置于站点根目录)
<cross-domain-policy>
    <allow-access-form domain=".youku.com" />
</cross-domain-policy>

Cookie的安全策略

  • Domain 用于指定Cookie的有效域
  • Path 用于指定Cookie的有效URL路径
  • Secure 如果设置该属性,仅在HTTPS请求中提交Cookie
  • Http 其实是HttpOnly, 如果设置该属性,客户端javascript无法获取Cookie的值

内容安全策略 (Content Security Polity, CSP)

通过编码在HTTP响应头中的指令来实施策略

  • Content-Security-Polity:script-src 'self' https://baidu.com
  • CSP的一些指令
  • default-src : 该指令在某种资源类型指定指令没有被定义的情况下制定了所有资源类型的加载策略(即默认的资源加载策略)

  • script-src : 该指令指定了Web应用程序可以加载的脚本的域或URL

  • object-src : 该指令制定了Web应用程序可以加载的插件,如Falsh

  • style-src : 该指令制定了Web应用程序可以加载的CSS样式表的域或URL

  • img-src : 该指令指定了Web应用程序可以加载的图片的域或URL

  • media-src : 该指令指定了Web应用程序可以加载的音视频的域或URL

  • frame-src : 该指令指定了Web应用程序可以加载的框架的域或URL

  • font-src : 该指令指定了Web应用程序可以加载的字体的域或URL

  • connect-src : 该指令指定了Web应用程序可以加载的像XHR, WebSockets, 以及EventSource等脚本接口的域或URL

  • plugin-types : 该指令指定了哪些MIME类型的插件可以被加载(浏览器支持度不够)

  • form-action : 该指令指定了HTML表单可以提交的URLS(浏览器支持度不够)

  • reflected-xss : 该指令告诉浏览器开启或关闭任何用于过滤或组织反射跨站脚本攻击的启发式算法,这相当于X-XSS-Protection响应头的效果(浏览器支持度不够)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值