More Related Content
Similar to 【反讲 银翘】Web安全 (20)
【反讲 银翘】Web安全
- 5. 安全三要素
• CIA
• 机密性Confidentially
• 完整性Integrity
• 可用性Availability
- 6. 安全评估
• 资产等级划分
• 威胁分析
• 风险分析
• 确认解决方案(设计安全方案)
• 能够有效解决问题
• 用户体验好
• 高性能
• 低耦合
• 易于扩展与升级
- 10. Web安全
• XSS
• CSRF
• JSON hijack
• SQL注入
• 任意url跳转
• 权限类漏洞
• Flash安全
• 敏感信息泄露
• 逻辑类漏洞
• 任意文件上传
• 文件包含
• 命令执行
• 不安全的传输
• 暴力破解
- 16. 前端安全
• 浏览器安全
• 同源策略Same Origin Policy
• 浏览器沙箱:多进程
• 恶意网址拦截:基于黑名单
- 18. 同源策略
• 源继承
• 来自about:blank,javascript:和data:URLs中的内容,继承了将
其载入的文档所指定的源
• IE特例
• 授信范围
• 端口
• 变更源
• 可设置document.domain 的值为当前域的一个后缀
• 使用document.domain来安全是让子域访问其父域,需要同时
将子域和父域的document.domain设置为相同的值。
• 端口号:document.domain=“company.com:8080”
- 19. 同源策略的限制
• DOM
• Cookie
• XMLHttpRequest
• 限制JavaScript的权限,不能读写返回内容
- 20. 不受同源策略的限制
• 可以跨域内嵌的资源
• <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
- 22. XSS
• XSS Payload
• 盗取Cookie
• 构造GET、POST
• http://blog.baidu.com/manage/entry.do?m=delete?i
d=15672313
• XSS 钓鱼——画出虚假登陆框盗取密码
• XSS Worm
- 23. XSS
• XSS 构造
• 利用字符编码
• var redirectUrl = “”;alert(/xss/);”;
• 利用注释绕过长度限制
• location.hash
• <base>标签
• window.name
- 24. XSS防御
• Cookie HttpOnly
• 输入过滤检查:XSS Filter
• 输出编码检查:
• HTMLEncode: escape、htmlentities()、
htmlspecialchars()
• JavaScriptEncode: 变量输出必须在引号中
• 只需一种编码
• 避免客户端的脚本对DOM重写、重定向等其他敏感操作
- 26. XSS防御
• 避免如下代码:
• window.setTimeout系列
• window.location系列
• document.write()系列
• document.create..系列
• document.location系列
• document.open(…)
• 标签闭合
- 27. DOM Based XSS
• input
• window.location/href/hash
• window.name
• document.referer
• document.cookie
• localstorage
• XMLHttpRequest
- 30. CSRF
• 依靠用户标识危害网站
• 利用网站对用户标识的信任
• 欺骗用户的浏览器发送HTTP请求给目标站点
• 另外可以通过IMG标签会触发一个GET请求,可以
利用它来实现CSRF攻击
- 34. 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等
Editor's Notes
- CIA是认识一个安全问题的组成属性。
C:保护数据内容不能泄露
I:保护数据内容是完整的、不被篡改的
A: 保护资源随需而得(DoS denial of service)
- 安全评估的4个阶段,层次递进,前后因果。上一阶段决定下一阶段的目标。
划分信任域、信任边界。
- Secure By Default最小权限原则:要求系统只授予主体必要的权限,而不要过度授权,这样能有效减少系统、网络、应用、数据库出错的机会。
纵深防御:各个不同层面、不同方面实施安全方案;在正确的地方做正确的事
数据与代码分离: example1
不可预测:有效抵御基于篡改、伪造的攻击;加密算法、随机数算法、哈希算法;用token防御CSRF
- CIA是认识一个安全问题的组成属性。
C:保护数据内容不能泄露
I:保护数据内容是完整的、不被篡改的
A: 保护资源随需而得(DoS denial of service)
- CIA是认识一个安全问题的组成属性。
C:保护数据内容不能泄露
I:保护数据内容是完整的、不被篡改的
A: 保护资源随需而得(DoS denial of service)
- 信任域假设
- “源”指的是主机名、协议和端口号的组合;我们可以把一个“源”看作是某个web页面或浏览器所浏览的信息的创建者。
同源策略,简单地说就是要求动态内容(例如,JavaScript或者VBScript)只能阅读与之同源的那些HTTP应答和cookies,而不能阅读来自不同源的内容。
document.domain=“xxx.com”;
参考:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
http://netsecurity.51cto.com/art/200902/111415.htm
Chrome多进程包括:浏览器进程、渲染进程、插件进程、扩展进程
IE8:每一个Tab是一个进程
- IE特例:
授信范围:在IE中设置受信站点。
端口:IE未将端口号加入到同源策略的组成部分之中,因此 http://company.com:81/index.html 和http://company.com/index.html 属于同源并且不受任何限制。
参考:跨域资源共享(CORS)安全性浅析http://netsecurity.51cto.com/art/201311/419179.htm
JSONP跨域的原理解析 http://www.nowamagic.net/librarys/veda/detail/224
- <script src=“…”></script>嵌入跨域脚本,语法错误信息只能在同源脚本中捕捉到
Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
参考:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
- <script src=“…”></script>嵌入跨域脚本,语法错误信息只能在同源脚本中捕捉到
Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。http://tool.oschina.net/commons
参考:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
- XSS攻击成功后,攻击者能够对用户当前浏览的页面植入恶意脚本,通过恶意脚本,控制用户的浏览器。这些恶意脚本称为XSS Payload。
- payload有效负载
XSS危害:劫持浏览器
记录用户的信息
冒用用户身份
篡改用户数据
- payload有效负载
- 跨站请求伪造
XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
- postmessage参考: http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/