`
zccst
  • 浏览: 3319203 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转义字符】HTML 字符实体 < &gt: &等

阅读更多
作者:zccst


2014-12-10
又一次因为转义字符而栽坑里了。
产品详情productDetail.js
在页面显示时,使用了转义函数escapleHTML
在errors对象里
通过页面中的字符作为key,取errors[i][key]的值时,要先对key做反转义,然后才能取出来。
var $tr = $(trs[i]),
    keyname = $tr.find("td").eq(0).html();
var map = data[0].errors;
//2014-12-10 页面中的keyname是转义过的,取值时需要反转义
if(map && map[util.unescapeHTML(keyname)]){
	$tr.find("td").eq(2).append('<br/><span style="color:red">'+map[util.unescapeHTML(keyname)]+'</span>');
}				



2014-12-04
转义分为escapeHTML和unescapeHTML,先看两个函数的实现。
/**
 * @function escapeHTML 转义html脚本 < > & " '
 * @param a -
 *            字符串
 */
escapeHTML: function(a){
	a = "" + a;
	return a.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");;
},
/**
 * @function unescapeHTML 还原html脚本 < > & " '
 * @param a -
 *            字符串
 */
unescapeHTML: function(a){
	a = "" + a;
	return a.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&quot;/g, '"').replace(/&apos;/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;




2014-11-18
下面的记录不完整,以后慢慢补充吧


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



如果您觉得本文的内容对您的学习有所帮助,您可以微信:
  • 大小: 31.2 KB
分享到:
评论

相关推荐

    HTML & XML 转义字符

    HTML和XML语言中,转义字符扮演着至关重要的角色,因为它们允许开发者在文本中插入特殊字符,而不会引起解析错误或改变文档结构。在HTML中,某些字符如", "&gt;", "&"拥有特殊的含义,不能直接在文档中使用。这是因为...

    HTML_转义字符

    在HTML文档中,为了正确地显示某些特殊字符,如小于号(&lt;)、大于号(&gt;)等,需要使用转义字符来替代这些特殊符号。转义字符是HTML的一种特殊语法,用于在网页中插入无法直接输入或可能与HTML语法冲突的字符。本文将...

    HTML和XML中的转义字符

    除了以上提到的基本转义字符之外,HTML还支持广泛的特殊字符实体,如数学符号、希腊字母等,这些可以通过Unicode编码来引用。例如,`&alpha;` 表示希腊字母α。 #### 三、HTML转义字符使用要点 1. **转义字符必须...

    html页面转义字符对照表

    ### HTML页面转义字符对照表详解 在HTML文档中,为了正确显示某些特殊字符或符号,需要使用到转义字符。这些转义字符通常由一个“&”字符开头,后面跟着表示该字符的代码或者名称,最后以一个“;”结束。这种方式...

    HTML转义符号.pdf

    HTML 转义符号是 HTML 中的一种特殊符号,用于在网页中显示特殊字符。这些符号可以分为两类:entity name 和 entity number。 Entity Name 是一种符号,例如 &lt;、&gt;、&amp; 等,它们可以在 HTML 源代码中直接...

    HTML 转义字符串

    HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言,其中转义字符串是HTML中的一个重要概念,用于在网页中插入特殊字符或者防止某些字符被浏览器误解析。在HTML中,某些字符如 "、"&gt;"、"&" 等具有...

    常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) - 来源:嘻嘻网 114_xixik_com_files

    预定义字符实体包括常见的如"&amp;"(&)、"&lt;"(&lt;)、"&gt;"(&gt;)、"&quot;"(")和"&apos;"(')等,它们分别对应于和号、小于号、大于号、双引号和单引号。数字字符实体则是通过编号来表示,比如"&#x26;"(&)...

    html中常用的转义字符总结

    html中常用的转义字符总结,具体内容如下所示: &nbsp; 不断行的空格 &ensp; 半方大的空格 &emsp; 全方大的空格 &lt; 小于 &lt; &gt; 大于 &gt; &amp; &符号 &quot; 双引号" &copy; 版权符号:copyright: &reg;...

    转义字符参照.pdf

    以下是一些常用的HTML字符实体: - 半方大的空白:&ensp;(编码:&#8194;) - 全方大的空白:&emsp;(编码:&#8195;) - 不断行的空格:&nbsp;(编码:&#160;) - 小于:&lt;(编码:&#60;) - 大于:&gt;(编码:&...

    HTML转义字符串

    HTML转义字符串是Web开发中一个重要的概念,它涉及到网页内容的安全性和正确显示。在HTML中,某些字符具有特殊的含义,比如"&lt;"代表","&gt;"代表"&gt;","&amp;"代表"&"等。为了在网页上直接显示这些字符而不是触发...

    HTML转义字符

    在开发过程中,有许多在线工具可以帮助生成或查找HTML转义字符,如iteye博客中的“HTML转义字符”博文章节(https://jun1986.iteye.com/blog/1420161),以及W3School等权威教程网站,都提供了详细的资料和实用工具...

    html转义字符表--大全

    为了解决这个问题,HTML引入了转义字符,也称为字符实体。当解析器遇到这些转义序列时,会将其转换为相应的字符。 在HTML中,转义字符通常由 "&" 开始,后跟字符的名称或十进制/十六进制数值,然后以分号 ";" 结束...

    Mybatis在Mapper.xml文件中的转义字符处理方式.pdf

    - 大于号“&gt;”的转义字符是`&gt;` - 小于号“&lt;”的转义字符是`&lt;` - 等于号“=”的转义字符是`&amp;` - 单引号“'”的转义字符是`&apos;` - 双引号“"”的转义字符是`&quot;` 例如,要查询一个名为`&lt;info&gt;`的字段...

    Android xml转义字符

    ### Android XML转义字符 在Android开发过程中,经常会遇到需要在`res/values/strings.xml`文件中使用特殊字符的情况。由于XML是一种标记语言,它对某些字符有特定的规定,如果直接将这些特殊字符写入XML文件,则...

    HTML字符实体[归类].pdf

    HTML字符实体(Character Entities)是HTML中用来表示特殊字符的转义字符串(Escape Sequence),它可以让开发者在网页中显示特殊符号,如&lt;、&gt;、&等。 HTML字符实体分类有两种:一种是实体名称(Entity Name),一种...

    转义表单提交字符处理函数

    ### 转义表单提交字符处理函数 在Web开发中,确保用户输入的数据安全是非常重要的。不正确的处理可能会导致诸如XSS(跨站脚本攻击)等安全问题。因此,对用户提交的数据进行适当的转义是至关重要的。本文将详细介绍...

    5、CDATA 和转义字符1

    短字符串使用转义字符可能更简洁,而长字符串使用转义字符可能影响可读性。另一方面,如果知道字符串中包含很多特殊字符,使用CDATA块可以避免频繁的转义操作,从而提高解析速度。 举一个实际应用的例子,假设我们...

Global site tag (gtag.js) - Google Analytics