美文网首页
《Web前端黑客技术解密》读书笔记(第九、十章)

《Web前端黑客技术解密》读书笔记(第九、十章)

作者: 艾特TT | 来源:发表于2016-11-23 12:53 被阅读42次

    本文地址:http://www.jianshu.com/p/ebb1db302ef5

    第九章 Web蠕虫

    主要分三类:XSS蠕虫CSRF蠕虫Clickjacking蠕虫,还有第四类 文本蠕虫

    Web 蠕虫思想

    • 用户参与后被动或主动的传播威胁

    XSS 蠕虫

    • 性质:传播性和病毒性
    • 具备以下条件
      • 内容有用户驱动
      • 存在XSS漏洞
      • 被感染用户是登陆状态
      • XSS蠕虫利用的关键功能本身具有内容的传播性

    CSRF 蠕虫

    与XSS蠕虫基本类似,只不过用的是CSRF,攻击代码放在攻击者页面中,目标网站都包含攻击者的URL

    • 使用服务器端进行跨域优点是:蠕虫代码、逻辑可以很好的隐藏,缺点是在服务器端发起的GET和POST请求无法带上攻击站点的本地Cookie或内存Cookie。CSRF蠕虫只能通过Referer里的唯一值来进行下一步攻击

    ClickJacking 蠕虫 ,界面劫持

    发动ClickJacking蠕虫攻击,必须满足以下两个条件

    • 在SNS社区中,找到一个可以直接发动HTTP的GET方式提交数据的页面
    • 这个页面可以被iframe标签包含

    第十章 关于防御

    三个方面防御

    • 浏览器厂商的防御,围绕Web厂商能参与的策略进行
    • Web厂商的防御
    • 用户的防御

    浏览器厂商的防御

    HTTP响应的X-头部

    • X-Frame-Options

    用于防御ClickJacking,有两个值:

    • DENY(禁止被加载任何frame);

    • SAMEORIGIN(仅允许被加载进同域内的frame)

    • X-XSS-Protection

    有三个值:

    • 0(表示禁用这个策略);

    • 1(默认,对危险脚本做一些标记和修改,以阻止在浏览器上的熏染执行);

    • 1;mode=block(强制不熏染,在Chrome下直接跳转到空白页,IE下返回一个#符号)

    • X-Content-Security-Policy(即CSP策略,将成为主流)

    比如现在的问题,IE下CSS的expression可以执行js,html中的script标签,标签中on事件、标签style属性、标签src/href/action等属性都可以执行js,没有分离,导致很多安全问题,CSP就是解决这些问题

    Chrome支持CSP策略的头部是X-WebKit-CSP,而非标准的X-Content-Security-Policy,不过具体策略都一样

    CSP语法格式如下:

    X-Content-Security-Policy:[指令1] [指令值1] [指令值2];[指令2] [指令值1] [指令值2];....
    

    具体指令参考书本 P339,

    主要有指令有:default-srcscript-srcobject-srcimg-srcmedia-srcframe-srcfont-srcconnect-srcstyle-srcreport-uri

    指令值有:

    (1)、*表示允许所有的来源
    (2)、*.foo.com表示来源foo.com的所有子域内容
    (3)、https://foo.com表示来源https协议下的foo.com

    以下特殊指令值,单引号必须有

    (1)、'none'表示空集,即外部资源不被加载
    (2)、'self'表示仅同域内的资源可加载
    (3)、'unsafe-inline'表示允许内嵌JS/CSS,如<script>内的、javascript:内的、on事件内的、<style>内的等,默认不被允许
    (4)、'unsafe-eval'表示允许evalsetTimeoutsetIntervalFunction等可以直接执行字符串的函数
    (5)、data指令,允许data:协议

    示例一:不允许任何外部资源加载,仅允许内嵌脚本执行

    // 响应头如下
    X-Content-Security-Policy: default-src 'unsafe-inline' 'self'
    

    示例二:仅允许白名单外部资源加载,不允许内部脚本执行

    // 响应头如下
    X-Content-Security-Policy: default-src *.foo.com
    

    Web厂商的防御

    域分离

    将业务放在不同的域下,子域不要设置document.domain相同根域

    安全传输,通过HTTPS

    安全的Cookie,身份认证相关的cookie严格设置https,并且为HttpOnly标记

    优秀的验证码

    慎防第三方内容

    XSS防御方案

    以下地方需要注意,具体参考书本P345

    • 进入HTML标签之间时
    • 进入HTML普通属性值时
    • 进入JAVASCRIPT中时
    • 进入CSS时
    • 进入URL时

    CSRF防御方案

    • 检查HTTP Referer字段是否为同域
    • 限制Session Cookie生命周期
    • 使用验证码
    • 使用一次性token

    界面操作劫持防御

    • X-Frame-Options防御,通过http响应头来控制,更安全
    • Frame-Busting脚本防御

    即通过js的方式防止页面被iframe嵌入

    方法一(比较容易攻破):

    if(top.location!=self.location){
      top.location = self.location;
    }
    

    方法二(更安全):

    <style>
      html{display:none;}
    </style>
    <script>
      if(self==top){
        document.documentElement.style.display = 'block';
      } else {
        top.location = self.location;
      }
    </script>
    
    • 使用token进行防御

    用户的防御

    附原书购买地址: http://item.jd.com/11181832.html

    相关文章

      网友评论

          本文标题:《Web前端黑客技术解密》读书笔记(第九、十章)

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