1 / 20

Web 前端安全防范

Web 前端安全防范. 安全问题是互联网的头号大问题 ——Douglas Crockford. 我们所处的环境. 我们面临的敌人. 攻击原理. CSRF. 案例解析 . 防御方法. 攻击原理. XSS. 案例解析 . 防御方法. 什么是 CSRF ?. Cross Site Request Forgery 会话劫持 / 身份伪造 蠕虫 链接背后的诱惑和欺骗 为什么要 CSRF ? 如何 CSRF ?. CSRF – 原理篇. m.qzone.qq.com. 无辜的 受害者. taotao.qq.com.

winka
Download Presentation

Web 前端安全防范

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web前端安全防范 安全问题是互联网的头号大问题 ——Douglas Crockford

  2. 我们所处的环境

  3. 我们面临的敌人 攻击原理 CSRF 案例解析 防御方法 攻击原理 XSS 案例解析 防御方法

  4. 什么是CSRF? • Cross Site Request Forgery • 会话劫持 / 身份伪造 • 蠕虫 • 链接背后的诱惑和欺骗 • 为什么要CSRF? • 如何CSRF?

  5. CSRF – 原理篇 m.qzone.qq.com 无辜的 受害者 taotao.qq.com <a href=“http://hacker.org?uin=受害者的QQ”>(诱人的内容)</a> 黑客主机 <form action=“http://taotao.qq.com/cgi-bin/...”> … //黑客定义的发布内容或其它特定写操作 </form>

  6. CSRF – 防御篇 - 如何检测? • 体力活 • 检查所有写接口 • 把POST改成GET试试 • 靠经验 • 我还有什么办法?

  7. CSRF – 防御篇 • GET  POST (好的开始) • Referrer (不可信赖) • ID verification (比较弱) • Verification code (很强可…) • Anti-CSRF token (这个不错) • Take care of XSS…

  8. 什么是XSS? • Cross Site Script • 注入HTML/Javascript • alert(/XSS/) • Exploit (利用) • 前端透明 • 为什么要XSS? • 如何XSS?

  9. 来一个邪恶的脑暴 如果可以控制前端,你打算干些什么坏事? • 免费获得黄钻特权 • 写一个死循环,让用户崩溃 • 把页面搞乱,因为可以document.write... • 盗取用户信息 • 更具有趣味性的钓鱼 • 利用本地漏洞制造更惊爆的效果

  10. XSS类型 • 本地XSS • htm/html/hta • chm/mht • 非存储(Non-stored)XSS • 反射式(Reflection)XSS • 可存储(Stored)XSS • XSS蠕虫

  11. XSS – 攻击原理 合法输入 前端校验 请求篡改 或 直接伪造 非法XSS输入 非法XSS输入回显 Server App

  12. XSS - 防御篇 • 确认是否需要富文本显示? • 关键点处理 Hint • 入库时转换 • 输出时转换(根据规则) • 使用成熟的解决方案 • 利用脚本进行侦听

  13. XSS - 检测篇 • 依然是体力活! • 检查输入 & 输出 • XSS cheat sheet • 工具 • Ratproxyfrom Google • TamperIE

  14. 一些可循的经验 • 我们发现大部分漏洞都因以下几点没做好: • 凡是写操作必须至少添加uin(ID/QQ号)验证,这样虽然不能彻底杜绝CSRF,但起码可以遏制蠕虫。如果有条件、便于改造,建议都加上token验证; • 凡是涉及隐私或非常重要的读操作,如仅主人自己可见内容和好友列表等,必须添加Anti-CSRF Token验证。空间大部分读操作CGI返回的是_Callback({})这样的格式,这给了黑客利用CSRF的可乘之机,即一种叫做json-hijacking的方法,可在外域页面通过script引用该CGI实现跨域盗取数据,造成隐私泄漏。

  15. 一些可循的经验 • 凡是通过URL参数获取的字段值要打印到页面上时(无论是前台还是后台),必须严格判断和约束字段类型,对于可能是string类型的字段,需要验证是否合法,或者在输出页面时进行HTMLEncode处理,切忌直接输出,以确保没有反射式XSS注入的风险; • 凡是富文本表现的UGC,或会嵌入到富文本环境的用户输入(如图片链接),在以CGI直接输出到页面的形式出现时,必须通过安全库过滤,以确保无潜在XSS风险。比较典型的例子是:<img … onload=”setImage(this, ' <?csvar:ImgSrc ?> ');” />,如果ImgSrc不做合法性检测或者只是做HTMLEncoding,同样会被洞穿,形成XSS。 

  16. 回顾一下 攻击原理 CSRF 案例解析 防御方法 攻击原理 XSS 案例解析 防御方法

  17. Security Source • http://www.owasp.org • http://www.80sec.com/ • http://en.wikipedia.org/wiki/Cross-site_scripting • http://www.houbysoft.com/papers/xss.php • http://ha.ckers.org/xss.html • http://ajaxian.com/archives/csrf-report • http://huaidan.org/archives/1462.html • http://www4.it168.com/jtzt/shenlan/safe/xss/

  18. Q & A   安全问题很重要,如果特性没做好或者有bug,用户还可以接受,但如果发现自己隐私被泄露,他就不再信任这个产品了。 —— Leohe

  19. Thank you!

More Related