文章目录
一、含义
XSS(Cross Site Scripting,跨站脚本攻击)最普遍的Web安全漏洞,原因由于Web应用程序对用户的输入过滤不足,导致攻击者可以嵌入恶意脚本代码到正常用户访问的页面中,当正常用户访问时恶意代码便会执行。为了不和CSS混淆,改名为XSS。
二、漏洞普遍原因
- web浏览器本身不安全,默认的执行和解析JS等脚本语言,不会判断数据和程序代码是否恶意;
- 如今的站点多存在输入输出,动态的交互便扩大了攻击范围;
- 团队合作开发使得应用程序健强性不稳定;(程序员水平参差不齐)
- 未意识到XSS漏洞危害,很多企业不像在安全上花费更多的成本;
- 攻击手段多、攻击范围广、攻击要求低、攻击方式花
三、XSS分类
3.1 反射型XSS
3.1.1 含义
反射型XSS(Reflected Cross-site Scripting)非持久型跨站脚本,诱使用户去点击一个包含恶意代码的URL,当受害者点时恶意JS代码便会直接在受害者主机运行。
3.1.2 特点
- 恶意代码暴露在URL中
- 需用户单击触发
- 每个脚本只执行一次
- 攻击成本高(用户不会轻易点击外来链接)
3.2 存储型XSS
3.2.1 含义
存储型XSS(Stored Cross-site Scripting)恶意攻击者插入的代码在客户端或数据库中,当用户浏览站点时,站点便加载出之前插入的恶意代码并执行,多存储在登录、个人信息、订单信息、意见反馈、评论留言等用户可输入的地方。
3.2.2 特点
- 比反射危害大
- 插入一次执行多次
3.3 DOM型XSS
3.3.1 含义
DOM型XSS(DOM-base XSS)基于文档对象模型的一种漏洞,参数通过url传递,不会像反射型和存储型XSS与数据库交互(实现过程在前台)反射型的一种。
3.3.2 特点
- 基于DOM
- 无数据库交互
- 前台
四、XSS危害
- 窃取Cookie,进行越权敏感操作;
- 网络钓鱼,盗取各类账号;
- 劫持会话(非法转账、强制发表文章)
- 强制弹广告、SEO恶意运营、刷流量;
- 客户端攻击(获取客户端敏感信息、DDOS)
- 蠕虫传播
- 网页挂马……
五、XSS防御
- 使用HttpOnly(在浏览器的document对象中看不到cookie了,而浏览器浏览时不受影响);
- 对输入和URL参数进行过滤:
-
- 白名单:限制输入内容,如只能输入数字和字符其它输入都是非法;
-
- 黑名单:列出不能使用的对象清单,如< > /等
- 对输出进行编码、转义(按照输出的环境对动态输出的内容进行编码和转义)
-
- < 转成 <
-
- > 转成 >;
-
- ’ 转成 '
-
- " 转成 "