Junwen's home
  • ES6

    • ES6 Decorator
    • ES6核心特性
    • Promise&Generator
  • js原理

    • 简单实现bind、apply和call
    • 如何遍历一个dom tree
    • 实现函数currying
    • 实现一个event
    • 详解js的继承
    • 详解requestAnimationFrame
    • Canvas api详解
    • DOM事件
    • EventLoop详解
    • JavaScript的内存管理
    • JavaScript的运行机制
    • Math对象
    • new操作符都做了什么
    • create基本实现原理
    • Set、Map、WeakSet和WeakMap
    • web worker原理
    • WebGL教程(MDN)
  • jsInfoSeries

    • 简介
    • JavaScript基础知识
    • 基础知识2
    • 基础知识3
    • 基础知识4
  • 技巧

    • 5个js解构有趣用途
    • 如何使用set提高代码性能
    • cordova构建项目时的问题
    • js中轻松遍历对象属性的几种方式
  • 怎么写出更好的css
  • BFC详解
  • box-shadow详解
  • CSS小技巧
  • Grid布局详解
HTML
  • IP十问
  • http笔试
  • http协议
  • 浏览器原理
  • 浏览器缓存其实就这么一回事儿
  • 浏览器兼容性问题
  • 移动端开发兼容性适配
  • 前端性能优化
  • 前端如何进行seo优化
  • webpack

    • webpack HMR
    • webpack优化基本方法
  • leetcode题解

    • 两数之和
    • 判断整数是否为回文串
    • 无重复字符的最长子串
  • Js链表
  • JavaScript排序
  • React

    • 虚拟DOM原理理解
    • React Hook
    • 组件复用指南
  • Vue

    • Vue举一反三
面试题
读书笔记
GitHub (opens new window)

Syun0216

多读书多种树
  • ES6

    • ES6 Decorator
    • ES6核心特性
    • Promise&Generator
  • js原理

    • 简单实现bind、apply和call
    • 如何遍历一个dom tree
    • 实现函数currying
    • 实现一个event
    • 详解js的继承
    • 详解requestAnimationFrame
    • Canvas api详解
    • DOM事件
    • EventLoop详解
    • JavaScript的内存管理
    • JavaScript的运行机制
    • Math对象
    • new操作符都做了什么
    • create基本实现原理
    • Set、Map、WeakSet和WeakMap
    • web worker原理
    • WebGL教程(MDN)
  • jsInfoSeries

    • 简介
    • JavaScript基础知识
    • 基础知识2
    • 基础知识3
    • 基础知识4
  • 技巧

    • 5个js解构有趣用途
    • 如何使用set提高代码性能
    • cordova构建项目时的问题
    • js中轻松遍历对象属性的几种方式
  • 怎么写出更好的css
  • BFC详解
  • box-shadow详解
  • CSS小技巧
  • Grid布局详解
HTML
  • IP十问
  • http笔试
  • http协议
  • 浏览器原理
  • 浏览器缓存其实就这么一回事儿
  • 浏览器兼容性问题
  • 移动端开发兼容性适配
  • 前端性能优化
  • 前端如何进行seo优化
  • webpack

    • webpack HMR
    • webpack优化基本方法
  • leetcode题解

    • 两数之和
    • 判断整数是否为回文串
    • 无重复字符的最长子串
  • Js链表
  • JavaScript排序
  • React

    • 虚拟DOM原理理解
    • React Hook
    • 组件复用指南
  • Vue

    • Vue举一反三
面试题
读书笔记
GitHub (opens new window)
  • 白帽子讲web安全

    • HTML5安全
    • PHP安全
    • WebServer配置安全
    • Web框架安全
    • 互联网业务安全
    • 加密算法和随机数
    • 安全的开发流程
    • 安全运营
    • 应用层拒绝服攻击
    • 文件上传漏洞
    • 注入攻击
    • 点击劫持
    • 认证与会话管理
    • 访问控制
    • 跨站点请求伪造(CSRF)
    • 跨站脚本攻击
    • 深入react技术栈

      • chapter1
    • 高性能建站
    • 冴羽系列文章链接
    • books
    junwen
    2020-03-27

    跨站脚本攻击

    # 跨站脚本攻击,英文全称Cross Site Script 也称XSS。

    1. 反射型XSS:只是简单地把用户输入的数据反射给浏览器。往往要通过点击一个连接才能攻击成功。也叫做“非吃就型XSS”
    2. 存储型XSS:会把用户输入的数据存储在服务器端。具有很强的稳定性。
    3. DOM Based XSS:通过修改页面DOM节点形成的XSS称之为DOM Based XSS。

    # XSS进阶攻击

    1. XSS payload:读取浏览器cookie对象,从而发起cookie劫持 (通过setCookie的时候设置HttpOnly禁止javascript读取页面cookie,这个操作会使cookie和客户端ip绑定)
    2. 构造GET和POST请求
    3. XSS钓鱼网站
    4. 识别用户的浏览器navigator.userAgent,但是浏览器的UserAgent是可以伪造的,但是浏览器之间的实现会存在差异---不同饿浏览器会各自实现一些独特的功能,而同意浏览器的不同版本也会有细微的差别。判断方法详见(p54)
    5. css history hack:其原理是通过利用style的visited属性,如果该链接被访问过,那么颜色会与众不同。

    # XSS攻击平台

    1. Attack API 是安全研究者pdp所主导的一个项目,它总结了很多能够直接使用XSS Payload,归纳为API的方式。
    2. BeEF是XSS演示平台
    3. XSS-Proxy是一个轻量级的XSS攻击平台,通过嵌套iframe的方式可以实时地远程控制被XSS攻击的浏览器。
    4. XSS-Worm(Samy Worm 百度空间蠕虫)

    # XSS构造技巧

    1. 利用字符编码
    2. 绕过长度限制
    3. 使用base标签
    4. window.name的妙用(window.name对象赋值,没有字符限制。而且并非document对象可以实现跨域、跨页面传递数据)
    5. Flash XSS:限制Flash动态脚本的最重要参数是allowScriptAccess,这个参数定义了Flash能否跟HTML页面通信。它有三个可选值(always,sameDomain,never)使用always是非常危险的,一般推荐使用neve。如果值为sameDomain的话,请务必保证Flash文件不是用户上传的。allowNetworking也非常关键,这个参数能控制Flash与外部网络进行通信,他有三个可选值:all,internal,none,一般建议设置为none或者internal。设置all可能带来安全问题。

    # XSS的防御

    1. 四两拨千斤:HttpOnly。设置该属性后,浏览器将禁止页面的JavaScript访问带有HttpOnly属性的cookie。一个cookie的使用过程如下:step1:浏览器向服务器发起请求,这时候没有cookie。step2:服务器返回时发送Set-Cookie头,向客户端浏览器写入Cookie。step3:在该cookie到期前,浏览器的所有页面都将发送改cookie。
    2. 输入检查。XSS Filter在用户提交数据时获取变量,进行XSS检查;此时用户数据并没有结合渲染页面的HTML代码。
    3. 输出检查。编码转译
    4. 安全的编码函数 &=>& < => < > => > " => " ' => ' / => /
      处理富文本:使用白名单,避免使用黑名单(iframe,base,form,script);尽可能禁止用户使用自定义的css与style 防御DOM Based XSS:
    在Github上编辑此页 (opens new window)
    #web安全
    上次更新: 3/22/2021, 3:47:15 AM
    跨站点请求伪造(CSRF)
    chapter1

    ← 跨站点请求伪造(CSRF) chapter1→

    最近更新
    01
    如何打造全链路项目生命周期的统一交付平台
    04-10
    02
    如何建立前端标准化研发流程
    04-10
    03
    如何从0到1一步步成体系地搭建CI
    04-10
    更多文章>
    Theme by Vdoing | Copyright © 2019-2021 Syun
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式