41
Web 安安 安安 2014-07-07

【反讲 银翘】Web安全

Embed Size (px)

DESCRIPTION

Web安全

Citation preview

Page 1: 【反讲 银翘】Web安全

Web 安全银翘

2014-07-07

Page 2: 【反讲 银翘】Web安全
Page 3: 【反讲 银翘】Web安全

主要内容

• 关于安全• 前端安全• 安全规范

Page 4: 【反讲 银翘】Web安全

关于安全

Page 5: 【反讲 银翘】Web安全

安全三要素

• CIA

• 机密性 Confidentially

• 完整性 Integrity

• 可用性 Availability

Page 6: 【反讲 银翘】Web安全

安全评估• 资产等级划分

• 威胁分析

• 风险分析

• 确认解决方案 ( 设计安全方案 )

• 能够有效解决问题

• 用户体验好

• 高性能

• 低耦合

• 易于扩展与升级

Page 7: 【反讲 银翘】Web安全

威胁分析模型

Page 8: 【反讲 银翘】Web安全

安全分析模型

Page 9: 【反讲 银翘】Web安全

安全原则

• 最小权限原则——时刻牢记

• 纵深防御原则——更全面、更正确地看待问题

• 数据与代码分离原则——从漏洞成因上看问题

• 不可预测性原则——从客服攻击方法的角度看问题

Page 10: 【反讲 银翘】Web安全

Web 安全• XSS

• CSRF

• JSON hijack

• SQL 注入

• 任意 url 跳转

• 权限类漏洞

• Flash 安全

• 敏感信息泄露

• 逻辑类漏洞

• 任意文件上传

• 文件包含

• 命令执行

• 不安全的传输

• 暴力破解

Page 11: 【反讲 银翘】Web安全

Web 安全

• 客户端安全

• 服务端安全

Page 12: 【反讲 银翘】Web安全

关于安全

• 安全问题的本质是信任问题

Page 13: 【反讲 银翘】Web安全

关于安全

Page 14: 【反讲 银翘】Web安全

前端安全

Page 15: 【反讲 银翘】Web安全

前端安全

• 浏览器安全

• XSS

• CSRF

• HTML 5 安全

Page 16: 【反讲 银翘】Web安全

前端安全

• 浏览器安全

• 同源策略 Same Origin Policy

• 浏览器沙箱:多进程

• 恶意网址拦截:基于黑名单

Page 17: 【反讲 银翘】Web安全

同源策略

Page 18: 【反讲 银翘】Web安全

同源策略• 源继承

• 来自 about:blank , javascript: 和 data:URLs 中的内容,继承了将其载入的文档所指定的源

• IE 特例

• 授信范围

• 端口

• 变更源

• 可设置 document.domain 的值为当前域的一个后缀

• 使用 document.domain 来安全是让子域访问其父域,需要同时将子域和父域的 document.domain 设置为相同的值。

• 端口号: document.domain=“company.com:8080”

Page 19: 【反讲 银翘】Web安全

同源策略的限制

• DOM

• Cookie

• XMLHttpRequest

• 限制 JavaScript 的权限,不能读写返回内容

Page 20: 【反讲 银翘】Web安全

不受同源策略的限制• 可以跨域内嵌的资源

• <script src=“…"></script>

• <link rel=“stylesheet" type="text/css" href="...">

• <img>

• <video> 、 <audio>

• <object>, <embed> 和 <applet>

• @font-face

• <frame> 和 <iframe>—— 可 X-Frame-Options 消息头阻止

• 第三方插件: Flash 、 Java Applet 、 Silverlight 、 Google Gears

Page 21: 【反讲 银翘】Web安全

前端安全• XSS——ex:1_input.php

• 反射型 XSS :把用户输入反射给浏览器

• 存储型 XSS :把用户输入存储在服务端

• —— 持久型

• 基于 DOM 的 XSS :修改页面 DOM 节点

• ex:2_dom_xss.html

Page 22: 【反讲 银翘】Web安全

XSS• XSS Payload

• 盗取 Cookie

• 构造 GET 、 POST

• http://blog.baidu.com/manage/entry.do?m=delete?id=15672313

• XSS 钓鱼——画出虚假登陆框盗取密码

• XSS Worm

Page 23: 【反讲 银翘】Web安全

XSS• XSS 构造

• 利用字符编码

• var redirectUrl = “\”;alert(/xss/);”;

• 利用注释绕过长度限制

• location.hash

• <base> 标签

• window.name

Page 24: 【反讲 银翘】Web安全

XSS 防御• Cookie HttpOnly

• 输入过滤检查: XSS Filter

• 输出编码检查:

• HTMLEncode: escape 、 htmlentities() 、 htmlspecialchars()

• JavaScriptEncode: 变量输出必须在引号中

• 只需一种编码

• 避免客户端的脚本对 DOM重写、重定向等其他敏感操作

Page 25: 【反讲 银翘】Web安全
Page 26: 【反讲 银翘】Web安全

XSS 防御• 避免如下代码:

• window.setTimeout系列

• window.location系列

• document.write()系列

• document.create..系列

• document.location系列

• document.open(…)

• 标签闭合

Page 27: 【反讲 银翘】Web安全

DOM Based XSS• input

• window.location/href/hash

• window.name

• document.referer

• document.cookie

• localstorage

• XMLHttpRequest

Page 28: 【反讲 银翘】Web安全

前端安全

• CSRF

Page 29: 【反讲 银翘】Web安全

CSRF

• Cross-site Request Forgery

• XSRF/CSRF

Page 30: 【反讲 银翘】Web安全

CSRF

• 依靠用户标识危害网站

• 利用网站对用户标识的信任

• 欺骗用户的浏览器发送 HTTP请求给目标站点

• 另外可以通过 IMG 标签会触发一个 GET请求,可以利用它来实现 CSRF 攻击

Page 31: 【反讲 银翘】Web安全

CSRF

• 需登录

• Form

• AJAX

Page 32: 【反讲 银翘】Web安全

CSRF 防御

• 将持久化的授权方法(例如 cookie或者 HTTP 授权)切换为瞬时的授权方法

• 时间戳

• 验证码

• token

Page 33: 【反讲 银翘】Web安全

前端安全

• HTML 5 安全

Page 34: 【反讲 银翘】Web安全

HTML 5 安全• video/audio

• <video src=“http://xxx/file/xxxx.ogg” onloadedmetadata=“alert(document.cookie)” tabindex=“0”></video>

• iframe sandbox

• <iframe sandbox=“allow-same-origin allow-forms allow-scripts allow-top-navigation” src=“xxx”></iframe>

• noreferer 不发送 referer

• <a href=“xxx” ref=“noreferer”>test</a>

• canvas 破解验证码

• postMessage 跨窗口传递消息

• 验证 domain , url 等

Page 35: 【反讲 银翘】Web安全

安全规范

Page 36: 【反讲 银翘】Web安全

JavaScript 安全规范• 禁止使用外部引用的 js,外链应当完全使用 a.tbcdn.cn 上的资

源文件

• 慎用 eval,setTimeout,setInterval 和从不可信站点获取的字符串操作的函数

• cookies操作一定要征询后端工程师的意见 ,避免撑破 cookies的大小限制

• 前端代码禁止获取 referer, 所有 referer 的操作由后端工程师处理

• 禁止发送页面相关信息到第三方站点

• 所有数据必须经过服务端的验证, js 代码需要经过 jslint 的测试

Page 37: 【反讲 银翘】Web安全

安全规范• 页面级别的 HTML 规范

• 标签完整

• 代码级别的规范

• 接口规范、 coding 规范

• 代码 review

Page 38: 【反讲 银翘】Web安全

参考

• 《白帽子讲web 安全》

• 《Web 前端黑客技术揭秘》

Page 39: 【反讲 银翘】Web安全
Page 40: 【反讲 银翘】Web安全

Thank you

Page 41: 【反讲 银翘】Web安全

Q&A