稀里糊涂的转义

一、前言

前段时间挖机ERP系统出现一个问题,表单录入客户名称是 L & Q International Trading Limited,然后页面展示变成 L & Q International Trading Limited,即字符 &变成了&。

二、为什么要转义

&amp;是&在HTML中的转义,那为什么要进行转义呢,因为在HTML中有些字符是预留的(注:每种语言都有预留关键字),比如在HTML中不能直接使用小于号(<)、大于号(>)等,因为浏览器会认为它们是HTML标签,如果希望正确显示预留字符,我们必须在HTML代码中使用对应的字符实体。

注:上面这段话不一定对,估计以前浏览器是存在这个问题,现在浏览器可能兼容性做得比较完善,我测试了一下是能够直接用 < 输出的,但空格是不行,你输入多个空格页面显示时会截取掉只留下一个空格。

&其实并不是HTHL标签中的关键字,但&gt;&lt;这些用到它,所以它也必须进行转义。

三、问题排查

1、确认&amp;是在前端还是后端造成的

开始是怀疑前端代码做了处理,直接用postman提交发现在后端接收到的数据也会变成了 &amp;这就排除掉前端的问题,前端Get提交的数据可能会做URLEncode,但要搞清楚URLEncode编码和HTML标签转义是两回事,POST过来JSON数据一般理论上是不会被改变。

结论:后端问题

2、确认后端哪个环节的问题

怀疑后端程序基础框架中有代码进行转义,直接创建一个最简单的SpringBoot项目(与工程版本一致),用postman提交含&的字符串,后端接收到的数据是正常的,这说明与SpringBoot框架不相关。

结论:后端拦截器问题。

3、后端拦截器代码跟踪

发现工程中引入了XssFilter,会对HTML标签转义,对脚本进行删除等。

这样被过转义后,存入数据库的就是  L &amp; Q International Trading Limited。

4、前端展示

Vue页面上使用双花括号 {{ }}、或Element-UI 的 el-table会将HTML(含转义后的实体)转换为纯文本进行输出。所以就造成了这个问题。

5、解决方案

如果明确了后端使用了XssFilter进行了过滤(会删除掉脚本),前端vue可以直接使用 v-html来显示 ,这样就不会有&amp;,但el-table中又该如何处理呢(好像只能和solt去处理了)?其实我看了代码,发现我们业务类中加了以下代码。

req.setName(StringEscapeUtils.unescapeHtml4(req.getName()));

这个是能保证页面上不再出现&amp;但这样做XssFilter的意义在哪里呢?

注:一般ERP这种ToB的项目需要内部账号登录才能使用,其实没有什么必要做XSS安全校验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/106746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式C语言自我修养《GNU C编译器扩展语法》学习笔记

目录 一、C语言标准和编译器 二、指定初始化 三、宏构造“利器”&#xff1a;语句表达式 四、typeof与container_of宏 五、零长度数组 六、属性声明&#xff1a;section 七、属性声明&#xff1a;aligned 一、C语言标准和编译器 C语言标准的发展过程&#xff1a; ●…

基于观察者模式设计的框架-REB,使代码模块化

设计模式里面的观察者模式&#xff0c;一直是作者想去设计一套框架来阐述这一个模式&#xff0c;因此REB(Rice Event Broker)就是为了完成观察者模式的一个框架。 观察者模式 聊REB之前&#xff0c;我们聊聊观察者模式带给我们特性&#xff0c;他能对我们框架设计提供什么好处…

双十一期间如何抢占流量,打造品牌爆款产品

进入10月末&#xff0c;也就进入了电商行业的大促流量红利期。如何提前规划大促期间&#xff0c;店铺流量扩张的计划&#xff0c;提前抢占流量&#xff0c;是每一个品牌方都需要考虑的问题。今天为大家分享下双十一期间如何抢占流量&#xff0c;打造品牌爆款产品&#xff01; 一…

Nginx请求参数解析

例&#xff1a; $arg_token 取的就是 uri?args 中 tokenxxx 的部分 $arg_PARAMETER #这个变量包含GET请求中&#xff0c;如果有变量PARAMETER时的值。$args #这个变量等于请求行中(GET请求)的参数&#xff0c;例如foo123&barblahblah;$binary_remote_addr #二进制的客户地…

浅谈安科瑞无线测温设备在俄罗斯某项目的应用

摘要&#xff1a;安科瑞ATE系列和ARTM-Pn无线测温设备适用于高低压柜的梅花触头&#xff0c;线缆&#xff0c;母排等位置对温度的实时监测。 Abstract: ATE series and ARTM-Pn are suitable for monitoring the real-time temperature of circuit breaker contact,cable,busb…

跨境电商:为民营经济注入新活力

中国的民营经济一直以来都是国家经济发展的中流砥柱&#xff0c;而近年来&#xff0c;跨境电商产业崭露头角&#xff0c;为民营经济注入了新的活力和机遇。本文将探讨跨境电商如何成为中国民营企业的助推引擎&#xff0c;以及其对民营经济的积极影响。 民营经济的支柱地位 中国…

ChatGPT AIGC 完成Excel跨多表查找操作vlookup+indirect

VLOOKUP和INDIRECT的组合在Excel中用于跨表查询,其中VLOOKUP函数用于在另一张表中查找数据,INDIRECT函数则用于根据文本字符串引用不同的工作表。具体操作如下: 1.假设在工作表1中,A列有你要查找的值,B列是你希望查询的工作表名称。 2.在工作表1的C列输入以下公式:=VLO…

iMeta框架使用方法

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

判断非线性负载是否合格的方法可以从以下几个方面进行考虑:

额定功率容量&#xff1a;需要了解负载设备的额定功率容量&#xff0c;根据负载设备的规格和说明书&#xff0c;确定其额定功率容量是否能够满足实际需求&#xff0c;如果超过了负载设备的额定功率容量&#xff0c;可能会导致设备过载&#xff0c;从而影响其正常运行。 电压波形…

JVM 垃圾回收机制(可达性分析、引用计数)

目录 1 什么是垃圾2 为什么需要回收3 哪些对象被判定为垃圾呢3.1 引用计数法3.2 可达性分析算法&#xff1a;GC Roots根 1 什么是垃圾 垃圾是指在运行程序中没有任何指针指向的对象&#xff0c;就是需要被回收的。 2 为什么需要回收 执行程序会不断地分配内存空间&#xff0c…

分布式事务协调中间件---seata快速入门

分布式事务 Seata&#xff0c;之前叫做Fescar&#xff0c;是一个开源的分布式事务解决方案&#xff0c;它主要致力于提供高效和简单的分布式事务服务。Seata主要用于解决微服务架构下的数据一致性问题。 Seata 的基本原理是基于两阶段提交 (2PC) 以及三阶段提交 (3PC)&#xff…

nodejs+vue水浒鉴赏平台系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

C++ 反向迭代器

反向迭代器的即正向迭代器的--&#xff0c;反向迭代器的--即正向迭代器的&#xff0c;反向迭代器和正向迭代器的很多功能都是相似的&#xff0c;因此我们可以复用正向迭代器作为反向迭代器的底层容器来封装&#xff0c;从而实现出反向迭代器&#xff0c;即&#xff1a;反向迭代…

【LeetCode 算法专题突破】双指针(⭐)

文章目录 前言1. 移动零题目描述代码 2. 复写零题目描述代码 3. 快乐数题目描述代码 4. 盛最多水的容器题目描述代码 5. 有效三角形的个数题目描述代码 6. 三数之和题目描述代码 7. 四数之和题目描述代码 总结 前言 学算法入门必学的一个章节&#xff0c;双指针算法&#xff0…

计算机网络-计算机网络体系结构-数据链路层

目录 *一、组帧 1.1字符计数法 1.2字符填充法 1.3零比特填充法 1.4违规编码 *二、差错控制 2.1检错编码 2.2.1奇偶校验码 2.2.2 CRC循环冗余码 2.2纠错编码-海明码 *三、流量控制和可靠传输机制 流量控制 停止-等待协议 ​编辑 后退n帧协议的滑动窗口(GBN) 选择…

ChatGPT AIGC 制作大屏可视化分析案例

第一部分提示词prompt: 商品 价格 p1 13 p2 41 p3 42 p4 53 p5 19 p6 28 p7 92 p8 62 城市 销量 北京 69 上海 13 南京 18 武汉 66 成都 70 你现在是一名非常专业的数据分析师,请结合上述数据完成下列几件事情 1:第一部分数…

基于 Triple 实现 Web 移动端后端全面打通

*作者&#xff1a;陈有为&#xff0c;陌陌研发工程师、Apache Dubbo PMC RPC 协议开发微服务 在我们正常开发微服务的时候&#xff0c;传统 RPC 服务可能在最底层。上层可能是浏览器、移动端、外界的服务器、自己的测试、curl 等等。我们可能会通过 Tomcat 这种外部服务器去组…

机器视觉知识讲的深不如讲的透

我深思这个话题&#xff0c;大家来培训&#xff0c;其实培训机构也很痛苦&#xff0c;每个热掌握的参差不齐&#xff0c;你说他不会吧&#xff0c;会一点电气&#xff0c;你说他会吧&#xff0c;会一点Opencv&#xff0c;会一点visionpro,会一点Visionmaster,会一点Halcon。好像…

【Retinex theory】【图像增强】-笔记

1 前言 retinex 是常见的图像增强的方法&#xff0c;retinex 是由两个单词合成的&#xff1a;retina conrtex &#xff0c;即视网膜皮层。 2 建立的基础 Land 的 retinex theory 建立在三个假设之下&#xff1a; 真实世界是无色的&#xff0c;我们所谓的颜色是光和物质相互…

上位机在自动化中有何作用和优势?

今日话题 上位机在自动化中有何作用和优势&#xff1f; 自动化控制编程领域包括单片机、PLC、机器视觉和运动控制等方向。输入“777”&#xff0c;即刻获取关于上位机开发和数据可视化的专业学习资料&#xff0c;近年来&#xff0c;上位机编程逐渐兴起&#xff0c;正在逐步替…