常见的Web攻击手段——XSS攻击

1、什么是XSS?

跨站脚本攻击(Cross Site Scripting),为了避免和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。前端

2、XSS种类

XSS攻击的分类主要有“反射型”与“存储型”两种。数据库

“反射型”攻击者经过包装改造URL参数,而后利用前端代码的缺陷或漏洞来攻击,它更偏向于前端层面,而且在实际攻击中攻击者会根据 HTML实体编码、URL编码、uniocde编码等进行编码而后欺骗用户点击访问。后端

而“存储型”攻击者则会经过抓包工具或者是直接调用接口的方式想尽一切办法来向后端数据库注入数据。常见的地方就是留言评论或者是含有表单提交的地方。安全

XSS攻击有两个要点,一个是“输入点”,针对输入点咱们能够对关键的特殊的字符进行编码,而在“输出点”咱们要对本身采用的输出方式以及方法要有必定的安全风险认知。架构

3、XSS危害

  • 钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼 JavaScript 以监控目标网站的表单输入。
  • 网站挂马:跨站时利用 IFrame 嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式均可以进行挂马攻击。
  • 身份盗用:Cookie 是用户对于特定网站的身份验证标志,XSS 能够盗取到用户的 Cookie,从而利用该 Cookie 盗取用户对该网站的操做权限。若是一个网站管理员用户 Cookie 被窃取,将会对网站引起巨大的危害。
  • 盗取网站用户信息:当可以窃取到用户 Cookie 从而获取到用户身份时,攻击者能够获取到用户对网站的操做权限,从而查看用户隐私信息。
  • 垃圾信息发送:好比在 SNS 社区中,利用 XSS 漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。
  • 劫持用户 Web 行为:一些高级的 XSS 攻击甚至能够劫持用户的 Web 行为,监视用户的浏览历史,发送与接收的数据等等。
  • XSS 蠕虫:XSS 蠕虫能够用来打广告、刷流量、挂马、恶做剧、破坏网上数据、实施 DDoS 攻击等。

4、XSS防范

XSS之因此会发生,是由于用户输入的数据变成了代码。所以,咱们须要对用户输入的数据进行HTML转义处理,将其中的“尖括号”、“单引号”、“引号”之类的特殊字符进行转义编码:分布式

HTML字符 HTML转义后的字符
< &lt;
> &gt;
&amp;
&quot;

就目前而言,应对XSS攻击的主要手段仍是编码与过滤两种,编码用于将特殊的符号 "<、>、&、'、""进行转义,而过滤则是阻止特定的标记、属性、事件。
若是你不肯意为了严格的安全而限制产品自己的灵活,那么我更建议采用“编码”的方案。工具

参考

文章《开放平台第三方应用安全开发指南》网站

文章《WEB安全 - 认识与防护XSS攻击》编码

文章《IBM Rational AppScan:跨站点脚本攻击深刻解析》spa

书籍《大型分布式网站架构设计与实践》

相关文章
相关标签/搜索