什么是反射型 XSS 攻击?

反射型 XSS 是指应用程序通过 Web 请求获取不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户。反射型 XSS 一般可以由攻击者构造带有恶意代码参数的 URL 来实现,在构造的URL 地址被打开后,其中包含的恶意代码参数被浏览器解析和执行。这种攻击的特点是非持久化,必须用户点击包含恶意代码参数的链接时才会触发。

实现目的:

(其实说白了就类似于  SQL 注入,只不过一个是针对数据库,一个是针对 HTML )

通过你提交的数据,实现反射型 XSS 可以比较容易地修改用户数据、窃取用户信息。

攻击示例:

例如:下面 JSP 代码片段的功能是从 HTTP 请求中读取输入的用户名 (username) 并显示到页面,如果 name 里有包含恶意代码,那么 Web 浏览器就会像显示 HTTP 响应那样执行该代码,应用程序将受到反射型 XSS 攻击
<%String name= request.getParameter("username"); %>
姓名: <%= name%>

为了避免反射型 XSS 攻击,建议采用以下方式进行防御

1.对用户的输入进行合理验证(如年龄只能是数字),对特殊字符(如`<、>、'、"`以及 `<script>、javascript` 等进行过滤。
2.根据数据将要置于 HTML上 下文中的不同位置(HTML 标签、HTML 属性、JavaScript 脚本、CSS、URL),对所有不可信数据进行恰当的输出编码。
3.设置 HttpOnly 属性,避免攻击者利用跨站脚本漏洞进行 Cookie 劫持攻击。
(其实白话理解就是,返回参数不要和请求参数一致,对用户输入的参数进行验证,确保没有包含 HTML 或 JS 等代码)

代码示例:

错误示例:传入参数对象,不管参数对象有用没用全部返回

@ResponseBody
@RequestMapping(value = "getMap")
public Map getMap(Map map){// xxxx 业务逻辑return map;
}

正确示例:传入参数对象,返回可用参数

@ResponseBody
@RequestMapping(value = "getMap")
public Map getMap(Map map){// xxxx 业务逻辑Map m = new Map()m.set(xxxx);m.set(xxxx);return m;
}

或者对后台传入参数进行代码过滤(简写的过滤方法)

@ResponseBody
@RequestMapping(value = "getMap")
public Map getMap(String str){Map map = new Map();// xxxx 业务逻辑Pattern p_script;Matcher m_script;String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> }p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);m_script = p_script.matcher(str);str = m_script.replaceAll(""); //过滤script标签// 业务逻辑map.setxxxx(str);return map;
}

漏洞:反射型 XSS 攻击相关推荐

  1. Web 安全漏洞之 XSS 攻击,Java 开发必看!

    编者说:作为JS系工程师接触最多的漏洞我想就是 XSS 漏洞了,然鹅并不是所有的同学对其都有一个清晰的认识.今天我们请来了@卢士杰 同学为我们分享他眼中的 XSS 漏洞攻击,希望能帮助到大家. 什么是 ...

  2. 反射型xss解决方法,增加过滤器,防止反射型 XSS攻击漏洞

    web.xml配置 <filter><filter-name>XSSFilter</filter-name><filter-class>com.xxx. ...

  3. 反射型XSS攻击原理

    XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是, ...

  4. 反射型XSS漏洞详解

    反射型XSS漏洞 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数,并在响应中将这个文 本返回给用户.对于开发者而言,使用这种机制 ...

  5. 【网络攻防】“跨站脚本攻击“ 第一弹 ——反射型XSS

    撰稿|谢泳 编辑|王聪丽 信息收集|谢泳 目录 1. 初识XSS 2. 反射型XSS 2.1 Cookie劫持 2.2 Get请求 2.3 Post请求 3. 防御方式 1. 初识XSS 跨站脚本攻击 ...

  6. XSS攻击和跨站脚本安全漏洞防护

    1.存储型XSS 指应用程序通过Web请求获取不可信赖的数据,并且在未检验数据是否存在XSS代码的情况下,将其存入数据库.当程序下一次从数据库中获取该数据时,致使页面再次执行XSS代码.存储型XSS可 ...

  7. xxs漏洞危害_反射型XSS漏洞详解

    反射型XSS漏洞 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数,并在响应中将这个文 本返回给用户.对于开发者而言,使用这种机制 ...

  8. web安全-XSS攻击(一)

    XSS攻击和SQL注入都是web安全中很常见的攻击方式,最近先学习XSS攻击,待到XSS学完后再去学习SQL注入,哇(感慨一番),这些知识真的太有趣了. 在开始之前,有必要了解一下概念 1.XSS跨站 ...

  9. 如何防止通过url攻击_什么是XSS攻击?如何防御XSS攻击?

    大家上午好,大家经常听到XSS攻击这个词,那么XSS攻击到底是什么,以及如何防御大家清楚么?今天,小墨就给大家讲一下:XSS攻击的定义.类型以及防御方法.什么是XSS攻击? XSS攻击全称跨站脚本攻击 ...

最新文章

  1. 一般将来时语法课教案_「英语语法」一般过去时用法技巧全解
  2. jquery对象PHP转换,jquery对象和DOM对象如何相互转换?
  3. Py之Seaborn:数据可视化Seaborn库的柱状图、箱线图(置信区间图)、散点图/折线图、核密度图/等高线图、盒形图/小提琴图/LV多框图的组合图/矩阵图实现
  4. 全球与中国立式胶体磨市场发展现状调研及前景需求分析报告2022-2027年版
  5. 第十四期: 拥有7000多万店铺和10多亿件商品的微店如何打造AI系统?
  6. OneManager+CloudFlare Workers部署教程
  7. Redis cluster不能发布在与 springboot 相同的物理磁盘上,否则找不到集群。
  8. linux shell: 搜索字符串,剔除包含特定字符的行
  9. Ruby eventmachine install
  10. python绘制子图去掉x轴坐标值_python – 关闭图形的所有子图的轴
  11. Origin 2019b 64Bit 软件绘制出图的坐标刻度老是消失怎么解决
  12. 怎样把孩子写的日记或作文制成电子版呢?
  13. 弹幕视频社交时代:如何玩转弹幕文化
  14. Digicert EV证书签名后出现“证书对于请求用法无效”的解决方案
  15. ETC工作原理及技术浅析
  16. web网站中常见攻击手法与原理
  17. ppt学习05——配色
  18. 联通猫无线灯闪 不能连接服务器,猫如何连接路由器,光猫光信号一直闪红灯
  19. Facebook语音识别野心曝光,测试Aloha,挑战苹果Siri
  20. 离散数学·图的矩阵表示、平面图

热门文章

  1. Camtasia 2020 20.0.2 简体中文版 — 屏幕录像微课制作软件介绍
  2. 滴答清单支持订阅哪些日历?
  3. linux中ls-f的用法,ls命令--Linux命令应用大词典729个命令解读
  4. Fingerprint Recognition
  5. 一年倒下761家,游戏公司存活有多难?
  6. CPCI总线计算机软件无法运行,CPCI总线计算机的加固设计研究.pdf
  7. 关于倾斜摄影测量技术,你了解多少?
  8. 2019-2020“一带一路”国际滑雪系列赛-高山滑雪远东杯|滑雪计时设备|滑雪比赛计时
  9. web安全渗透测试的大纲
  10. aix服务器查看文件编码格式,Linux stat命令和AIX istat命令 (查看文件修改时间)(示例代码)...