转义分为escapeHTML和unescapeHTML,先看两个函数的实现。
/** * @function escapeHTML 转义html脚本 < > & " ' * @param a - * 字符串 */ escapeHTML: function(a){ a = "" + a; return a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");; }, /** * @function unescapeHTML 还原html脚本 < > & " ' * @param a - * 字符串 */ unescapeHTML: function(a){ a = "" + a; return a.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'"); },
使用场景:
(1)用户在页面中录入(比如输入框) <script>alert(2);</script>, js将该内容提交给后端保存
(2)显示时,后端将字符串返回前端;js接收到之后:
a, 使用escapeHTML,将字符串转为 <script>alert(2);</script>此时,浏览器将能正确解析,因为浏览器接收到实体字符后,转成对应的尖括号等。
b, 不使用escapeHTML,浏览器一看到<,便认为是html标签的开始,直接把刚才的字符串当脚本执行了,这就是xss漏洞。
2,unescapeHTML将字符实体转成< > & " '
使用场景:
后端将已经转义后的内容显示到页面;比如<script>alert(2);</script>
js收到后:
a,前端进行unescapeHTML,则可以直接dom操作,将标签显示到页面。
b,前端没有unescapeHTML,则原样输出<script>alert(2);</script>,但此时并没有执行。
转义字符:
< => <
> => >
& => &
" => "
' => '
提示:使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。
转义分为escapeHTML和unescapeHTML,先看两个函数的实现。相关推荐
- html设置样式不继承_web前端入门到实战:css的核心原理分为优先级原则与继承原则两大部分...
css原理:1.优先原则=>后解析的内容会覆盖之前解析的内容(所谓解析就是读取的css样式)2.继承原则=>嵌套里面的标签拥有外部标签的某些样式,子元素可以继承父元素的属性 1>优先 ...
- php 获取 参数名和参数值,如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)...
今天在看手册的时候,无意间看到这两个内置函数parse_url和parse_str.看到他们的用法后,我突然想到能不能利用这两个函数来获得url地址中的参数.为了验证我的猜想,我就以如下url为例子: ...
- 5.8 什么是学习博主?看两个博主案例【玩赚小红书】
先看大家看两个博主案例 学习博主,就是专门为用户提供学习方法的人. 学习方法在小红书的内容中属于干货价值,也就是用户们需要的东西,能为他们解决问题的内容,所以是比较受欢迎的,换言之,就是笔记数据比 ...
- 早教产品微商怎么做精准引流?早教机构引流活动可以分为线上和线下两种
早教产品微商怎么做精准引流?早教机构引流活动可以分为线上和线下两种 一般来说,根据媒介的不同,早教机构引流活动可以分为线上和线下两种,线上的引流方式有:微信.自媒体.短视频;线下的引流方式有地推和异业 ...
- 冲压工艺按其变形性质可以分为材料的分离与成型两大类
冲压工艺按其变形性质可以分为材料的分离与成型两大类 1.基本工序分类 冲压工艺按其变形性质可以分为材料的分离与成型两大类. 分离工序是指坯料在冲压力的作用下,变形部位的应力达到抗拉强度以后,是坯料发生 ...
- 北京某高校可用的电话号码有以下几类,校内电话号码由4位数字组成,第1位数字不是0,校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0)
题目介绍 北京某高校可用的电话号码有以下几类: 校内电话号码由4位数字组成,第1位数字不是0: 校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0, 若是本市电话则再接着拨8位数字(第1位不是0 ...
- 电源IC大致分为线性稳压器和开关稳压器两种!
电源ic是指开关电源的脉宽控制集成,电源靠它来调整输出电压电流的稳定. 随着电子技术的发展, 尤其是目前便携式产品流行和节能环保的提倡, 电源IC发挥的作用越来越大.几年前, 电源IC还仅仅是集成稳压 ...
- 两个函数彻底理解Lua中的闭包
本文通过两个函数彻底搞懂Lua中的闭包,相信看完这两个函数,应该能理解什么是Lua闭包.废话不多说,上 code: 1 --[[************************************ ...
- 只用两个函数实现事务的设计模式!
作者 | 梁唐 责编 | 张文 头图 | CSDN 下载自东方 IC 来源 | TechFlow(ID:techflow2019) 大家好,今天给大家介绍一个新的设计模式,叫做 memento 模式 ...
最新文章
- ExtAspNet应用技巧(十九) - 日志管理
- Javascript面向对象编程(三):非构造函数的继承
- spring mvc 文件上传 form表单
- 计算机网络日,《计算机网络原理》教学日历[汇编].pdf
- Inconsistent behavior between text type in Webclient UI and backend customizing
- python lock_python多线程Lock和RLock的区别
- Java 包装类 自动装箱和拆箱
- android modem开发(16)---MTK语音测试
- CentOS 7中源码安装MySQL 5.7.16 ----已测试验证
- CSS 相对定位与绝对定位
- Java 设计模式 之 工厂方法模式、抽象工厂模式
- JAVA正则表达式语法大全
- S3存储服务间数据同步工具Rclone迁移教程
- 怎么预防服务器的常见攻击
- iPad的尺寸与分辨率
- 由浅入深学习android input系统(五) - input系统的启动
- android悬浮按钮实现方法
- 极路由2(极贰)ROOT并刷了OpenWrt
- python爬取QQ空间好友说说并生成词云
- ios 内存深度优化_iOS内存优化