1. /** * @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,escapeHTML将< > & " '转成字符实体 
使用场景: 
(1)用户在页面中录入(比如输入框) <script>alert(2);</script>, js将该内容提交给后端保存 
(2)显示时,后端将字符串返回前端;js接收到之后: 
a, 使用escapeHTML,将字符串转为 &lt;script&gt;alert(2);&lt;/script&gt;此时,浏览器将能正确解析,因为浏览器接收到实体字符后,转成对应的尖括号等。 
b, 不使用escapeHTML,浏览器一看到<,便认为是html标签的开始,直接把刚才的字符串当脚本执行了,这就是xss漏洞。

2,unescapeHTML将字符实体转成< > & " ' 
使用场景: 
后端将已经转义后的内容显示到页面;比如&lt;script&gt;alert(2);&lt;/script&gt; 
js收到后: 
a,前端进行unescapeHTML,则可以直接dom操作,将标签显示到页面。 
b,前端没有unescapeHTML,则原样输出<script>alert(2);</script>,但此时并没有执行。

转义字符: 
< => &lt; 
> => &gt; 
& => &amp; 
" => &quot; 
' => &apos;

提示:使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。

转义分为escapeHTML和unescapeHTML,先看两个函数的实现。相关推荐

  1. html设置样式不继承_web前端入门到实战:css的核心原理分为优先级原则与继承原则两大部分...

    css原理:1.优先原则=>后解析的内容会覆盖之前解析的内容(所谓解析就是读取的css样式)2.继承原则=>嵌套里面的标签拥有外部标签的某些样式,子元素可以继承父元素的属性 1>优先 ...

  2. php 获取 参数名和参数值,如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)...

    今天在看手册的时候,无意间看到这两个内置函数parse_url和parse_str.看到他们的用法后,我突然想到能不能利用这两个函数来获得url地址中的参数.为了验证我的猜想,我就以如下url为例子: ...

  3. 5.8 什么是学习博主?看两个博主案例【玩赚小红书】

    先看大家看两个博主案例 ​ 学习博主,就是专门为用户提供学习方法的人. 学习方法在小红书的内容中属于干货价值,也就是用户们需要的东西,能为他们解决问题的内容,所以是比较受欢迎的,换言之,就是笔记数据比 ...

  4. 早教产品微商怎么做精准引流?早教机构引流活动可以分为线上和线下两种

    早教产品微商怎么做精准引流?早教机构引流活动可以分为线上和线下两种 一般来说,根据媒介的不同,早教机构引流活动可以分为线上和线下两种,线上的引流方式有:微信.自媒体.短视频;线下的引流方式有地推和异业 ...

  5. 冲压工艺按其变形性质可以分为材料的分离与成型两大类

    冲压工艺按其变形性质可以分为材料的分离与成型两大类 1.基本工序分类 冲压工艺按其变形性质可以分为材料的分离与成型两大类. 分离工序是指坯料在冲压力的作用下,变形部位的应力达到抗拉强度以后,是坯料发生 ...

  6. 北京某高校可用的电话号码有以下几类,校内电话号码由4位数字组成,第1位数字不是0,校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0)

    题目介绍 北京某高校可用的电话号码有以下几类: 校内电话号码由4位数字组成,第1位数字不是0: 校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0, 若是本市电话则再接着拨8位数字(第1位不是0 ...

  7. 电源IC大致分为线性稳压器和开关稳压器两种!

    电源ic是指开关电源的脉宽控制集成,电源靠它来调整输出电压电流的稳定. 随着电子技术的发展, 尤其是目前便携式产品流行和节能环保的提倡, 电源IC发挥的作用越来越大.几年前, 电源IC还仅仅是集成稳压 ...

  8. 两个函数彻底理解Lua中的闭包

    本文通过两个函数彻底搞懂Lua中的闭包,相信看完这两个函数,应该能理解什么是Lua闭包.废话不多说,上 code: 1 --[[************************************ ...

  9. 只用两个函数实现事务的设计模式!

    作者 | 梁唐  责编 | 张文 头图 | CSDN 下载自东方 IC 来源 | TechFlow(ID:techflow2019) 大家好,今天给大家介绍一个新的设计模式,叫做 memento 模式 ...

最新文章

  1. ExtAspNet应用技巧(十九) - 日志管理
  2. Javascript面向对象编程(三):非构造函数的继承
  3. spring mvc 文件上传 form表单
  4. 计算机网络日,《计算机网络原理》教学日历[汇编].pdf
  5. Inconsistent behavior between text type in Webclient UI and backend customizing
  6. python lock_python多线程Lock和RLock的区别
  7. Java 包装类 自动装箱和拆箱
  8. android modem开发(16)---MTK语音测试
  9. CentOS 7中源码安装MySQL 5.7.16 ----已测试验证
  10. CSS 相对定位与绝对定位
  11. Java 设计模式 之 工厂方法模式、抽象工厂模式
  12. JAVA正则表达式语法大全
  13. S3存储服务间数据同步工具Rclone迁移教程
  14. 怎么预防服务器的常见攻击
  15. iPad的尺寸与分辨率
  16. 由浅入深学习android input系统(五) - input系统的启动
  17. android悬浮按钮实现方法
  18. 极路由2(极贰)ROOT并刷了OpenWrt
  19. python爬取QQ空间好友说说并生成词云
  20. ios 内存深度优化_iOS内存优化

热门文章

  1. 【极光笔记】iOS 15推送新特性初探
  2. 钻木取火完全攻略——不再是纸上谈兵…
  3. [Hello World!]关于为什么我要写博客
  4. c语言const修饰指针
  5. Java 简单拼图游戏(实现音乐播放功能)
  6. 来自经典“打火机”的攻击——MCU抗干扰实验系列专题(7)
  7. android 去应用商店给软件评分
  8. Java运行环境搭建与Hello world
  9. 百度空间部分表单查询
  10. 释放早晨的操作恐惧症,Windows任务计划制定