xss与转义符

xss简单来说:

  • XSS 攻击是页面被注入了恶意的代码

  • XSS 漏洞是 可以让攻击者注入恶意代码可执行的漏洞

具体参看之前写的:

为了xss,常见的转义符

字符 转义后的字符
& &
< &lt;
> &gt;
" &quot;
' '
/ /

转义只是防止xss攻击的一种手段之一,更多请查看:《web开发前端安全问题总结——web前端安全问题汇总

html转义与反转义方法

html转义

lodashjs

lodashjs作为常用,集成了escape 方法

https://www.lodashjs.com/docs/lodash.escape

DOM API

转义方法
let textNode = document.createTextNode(`<script src='https://www.zhoulujun.cn/xxs.js'></script>`);
let div = document.createElement('div')
div.append(textNode);
console.log(div.innerHTML);
反转义方法
let str = `&lt;script src='let doc = new DOMParser().parseFromString(str, 'text/html'); 
console.log(doc.documentElement.textContent);

字符串替换处理 转义与反转义

就是正则替换,这里想不讲了,能用库太多了,去看一下源码就好了

HTML常用转义字符对照表

最常用的字符实体 Character Entities

显示 说明 实体名称 实体编号
  半方大的空白 &ensp;  
  全方大的空白 &emsp;  
  不断行的空白格 &nbsp;  
< 小于 &lt; <
> 大于 &gt; >
& &符号 &amp; &
" 双引号 &quot; "
版权 &copy;
已注册商标 &reg;
商标(美国)
× 乘号 &times; ×
÷ 除号 &divide; ÷

ISO 8859-1 (Latin-1)字符集

HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集。

备注:为了方便起见,以下表格中,“实体名称”简称为“名称”,“实体编号”简称为“编号”

显示 名称 编号 显示 名称 编号 显示 名称 编号 显示 名称 编号 显示 名称 编号
  &nbsp;   ¡ &iexcl; ¡ ¢ &cent; ¢ £ &pound; £ ¤ &curren; ¤
¥ &yen; ¥ ¦ &brvbar; ¦ § &sect; § ¨ &uml; ¨ &copy;
ª &ordf; ª « &laquo; « ¬ &not; ¬   &shy;   &reg;
¯ &macr; ¯ ° &deg; ° ± &plusmn; ± ² &sup2; ² ³ &sup3; ³
´ &acute; ´ µ &micro; µ &para; · &middot; · ¸ &cedil; ¸
¹ &sup1; ¹ º &ordm; º » &raquo; » ¼ &frac14; ¼ ½ &frac12; ½
¾ &frac34; ¾ ¿ &iquest; ¿ À &Agrave; À Á &Aacute; Á Â &Acirc; Â
à &Atilde; Ã Ä &Auml; Ä Å &Aring; Å Æ &AElig; Æ Ç &Ccedil; Ç
È &Egrave; È É &Eacute; É Ê &Ecirc; Ê Ë &Euml; Ë Ì &Igrave; Ì
Í &Iacute; Í Î &Icirc; Î Ï &Iuml; Ï Ð &ETH; Ð Ñ &Ntilde; Ñ
Ò &Ograve; Ò Ó &Oacute; Ó Ô &Ocirc; Ô Õ &Otilde; Õ Ö &Ouml; Ö
× &times; × Ø &Oslash; Ø Ù &Ugrave; Ù Ú &Uacute; Ú Û &Ucirc; Û
Ü &Uuml; Ü Ý &Yacute; Ý Þ &THORN; Þ ß &szlig; ß à &agrave; à
á &aacute; á â &acirc; â ã &atilde; ã ä &auml; ä å &aring; å
æ &aelig; æ ç &ccedil; ç è &egrave; è é &eacute; é ê &ecirc; ê
ë &euml; ë ì &igrave; ì í &iacute; í î &icirc; î ï &iuml; ï
ð &eth; ð ñ &ntilde; ñ ò &ograve; ò ó &oacute; ó ô &ocirc; ô
õ &otilde; õ ö &ouml; ö ÷ &divide; ÷ ø &oslash; ø ù &ugrave; ù
ú &uacute; ú û &ucirc; û ü &uuml; ü ý &yacute; ý þ &thorn; þ
ÿ &yuml; ÿ                        

数学和希腊字母标志
symbols, mathematical symbols, and Greek letters

显示 名称 编号 显示 名称 编号 显示 名称 编号 显示 名称 编号 显示 名称 编号
ƒ &fnof; ƒ Α &Alpha; Α Β &Beta; Β Γ &Gamma; Γ Δ &Delta; Δ
Ε &Epsilon; Ε Ζ &Zeta; Ζ Η &Eta; Η Θ &Theta; Θ Ι &Iota; Ι
Κ &Kappa; Κ Λ &Lambda; Λ Μ &Mu; Μ Ν &Nu; Ν Ξ &Xi; Ξ
Ο &Omicron; Ο Π &Pi; Π Ρ &Rho; Ρ Σ &Sigma; Σ Τ &Tau; Τ
Υ &Upsilon; Υ Φ &Phi; Φ Χ &Chi; Χ Ψ &Psi; Ψ Ω &Omega; Ω
α &alpha; α β &beta; β γ &gamma; γ δ &delta; δ ε &epsilon; ε
ζ &zeta; ζ η &eta; η θ &theta; θ ι &iota; ι κ &kappa; κ
λ &lambda; λ μ &mu; μ ν &nu; ν ξ &xi; ξ ο &omicron; ο
π &pi; π ρ &rho; ρ ς &sigmaf; ς σ &sigma; σ τ &tau; τ
υ &upsilon; υ φ &phi; φ χ &chi; χ ψ &psi; ψ ω &omega; ω
? &thetasym; ϑ ? &upsih; ϒ ? &piv; ϖ &bull; &hellip;
&prime; &Prime; &oline; &frasl; &weierp;
&image; &real; &trade; &alefsym; &larr;
&uarr; &rarr; &darr; &harr; &crarr;
&lArr; &uArr; &rArr; &dArr; &hArr;
&forall; &part; &exist; &empty; &nabla;
&isin; &notin; &ni; &prod; &sum;
&minus; &lowast; &radic; &prop; &infin;
&ang; &and; &or; &cap; &cup;
&int; &there4; &sim; &cong; &asymp;
&ne; &equiv; &le; &ge; &sub;
&sup; &nsub; &sube; &supe; &oplus;
&otimes; &perp; &sdot; ? &lceil; ? &rceil;
? &lfloor; ? &rfloor; ? &lang; ? &rang; &loz;
&spades; &clubs; &hearts; &diams;      

重要的国际标记
markup-significant and internationalization characters

显示 名称 编号 显示 名称 编号 显示 名称 编号 显示 名称 编号 显示 名称 编号
" &quot; " & &amp; & < &lt; < > &gt; > Œ &OElig; Œ
œ &oelig; œ Š &Scaron; Š š &scaron; š Ÿ &Yuml; Ÿ ˆ &circ; ˆ
˜ &tilde; ˜   &ensp;     &emsp;     &thinsp;   &zwnj;
&zwj; &lrm; &rlm; &ndash; &mdash;
&lsquo; &rsquo; &sbquo; &ldquo; &rdquo;
&bdquo; &dagger; &Dagger; &permil; &lsaquo;
&rsaquo; &euro;                  

JavaScript转义符

转义序列 字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\' 单引号
\" 双引号
\\ 反斜杠

富文本通用转义字符

字符

十进制

转义字符

描述

@

&#64

&commat

at 符号

&#169

&copy

版权符号

!

&#33

&excl

感叹号

¡

&#161

&iexcl

倒置感叹号

:

&#58

&colon

冒号

,

&#44

&comma

逗号

·

&#183

&middot

中间点

&#39

&apos

撇号

&#8216

&lsquo

左单引号

&#8220

&ldquo

左双引号

(

&#40

&lpar

左括号

[

&#91

&lsqb

左方括号

{

&#123

&lcub

左花括号

§

&#167

&sect

分节符号

_

&#95

&lowbar

单下划线

|

&#124

&verbar

竖线

&#8214

&Verbar

双竖线

&#8736

&ang

#

&#35

&num

数字标志

$

&#36

&dollar

美元符号

%

&#37

&percnt

百分号

&#8240

&permil

千分号

&#8241

pertenk

万分号

*

&#42

&ast

星号

/

&#47

&sol

斜线符号

+

&#43

&add

加号

×

&#215

&times

乘号

=

&#61

&equal

等于号

&#8776

&asymp

约等于

<

&#60

&lt

小于号

&#8804

&le

小于等于

¹

&#185

&sup1

上标 1

²

&#178

&sup2

上标 2

³

&#179

&sup3

上标 3

&

&#38

&amp

and 符号

&#174

&reg

注册商标符

?

&#63

&quest

问号

¿

&#191

&iquest

倒置问号

;

&#59

&semi

分号

.

&#46

&period

句号

&#8226

&bull

加重号

&#34

&quot

引号

&#8217

&rsquo

右单引号

&#8221

&rdquo

右双引号

)

&#41

&rpar

右括号

]

&#93

&rsqb

右方括号

}

&#125

&rcub

右花括号

&#182

&para

段落符号

__

&#818

&UnderBar

双下划线

¦

&#166

&brvbar

间断竖线

&#8230

&hellip

三点省略号

^

&#94

&Hat

hat符号

π

&#961

&pi

圆周率

¥

&#165

&yen

元符号

°

&#176

&deg

度符号

&#8730

&radic

平方根

&#8734

&infin

正无穷

±

&#177

&plusmn

加减符号

 

&#92

&bsol

反斜线符号

&#8211

&ndash

减号

÷

&#247

&divide

除号

&#8800

&ne

不等于

&#8801

&equiv

相当于

>

&#62

&gt

大于号

&#8805

&ge

大于等于

¼

&#188

&frac14

四分之一

½

&#189

&frac12

二分之一

¾

&#190

&frac34

四分之三

HTML特殊转义字符对照表

HTML特殊转义字符对照表
字符 十进制 转义字符 字符 十进制 转义字符 字符 十进制 转义字符
? ¡ &iexcl; Á Á &Aacute; á á &aacute;
¢ &cent; Â Â &circ; â &#226 &acirc;
£ &pound; Ã Ã &Atilde; ã ã &atilde;
¤ ¤ &curren; Ä Ä &Auml ä ä &auml;
¥ &yen; Å Å &ring; å å &aring;
| ¦ &brvbar; Æ Æ &AElig; æ æ &aelig;
§ § &sect; Ç Ç &Ccedil; ç ç &ccedil;
¨ ¨ &uml; È È &Egrave; è è &egrave;
© &copy; É É &Eacute; é é &eacute;
a ª &ordf; Ê Ê &Ecirc; ê ê &ecirc;
? « &laquo; Ë Ë &Euml; ë ë &euml;
? ¬ &not; Ì Ì &Igrave; ì ì &igrave;
/x7f ­ &shy; Í Í &Iacute; í í &iacute;
® &reg; Î Î &Icirc; î î &icirc;
ˉ ¯ &macr; Ï Ï &Iuml; ï ï &iuml;
° ° &deg; Ð Ð &ETH; ð ð &ieth;
± ± &plusmn; Ñ Ñ &Ntilde; ñ ñ &ntilde;
2 ² &sup2; Ò Ò &Ograve; ò ò &ograve;
3 ³ &sup3; Ó Ó &Oacute; ó ó &oacute;
´ &acute; Ô Ô &Ocirc; ô ô &ocirc;
μ µ &micro; Õ Õ &Otilde; õ õ &otilde;
? &para; Ö Ö &Ouml; ö ö &ouml;
· · &middot; &times; × &times; ÷ ÷ &divide;
? ¸ &cedil; Ø Ø &Oslash; ø ø &oslash;
1 ¹ &sup1; Ù Ù &Ugrave; ù ù &ugrave;
o º &ordm; Ú Ú &Uacute; ú ú &uacute;
? » &raquo; Û Û &Ucirc; û û &ucirc;
? ¼ &frac14; Ü Ü &Uuml; ü ü &uuml;
? ½ &frac12; Ý Ý &Yacute; ý ý &yacute;
? ¾ &frac34; Þ Þ &THORN; þ þ &thorn;
? ¿ &iquest; ß ß &szlig; ÿ ÿ &yuml;
À À &Agrave; à à &agrave;      

参考文章:

巧用DOM API实现HTML字符的转义和反转义 https://www.zhangxinxu.com/wordpress/2021/01/dom-api-html-encode-decode/

java转换 HTML字符实体,java特殊字符转义字符串 https://blog.51cto.com/xionggeclub/3768494

转载本站文章《HTML转义字符:xss攻击与HTML字符的转义和反转义》,
请注明出处:https://www.zhoulujun.cn/html/webfront/SGML/htmlBase/2022_0617_8846.html

TML转义字符:xss攻击与HTML字符的转义和反转义的更多相关文章

  1. JS对HTML实体字符转义和反转义

    一.名词解释 HTML实体字符: 由于在HTML中有些符号是预留的,比如在html中不能直接使用尖括号(‘<’或‘>’),会被误认为标签符号.所以需要通过HTML实体字符去进行替换: HT ...

  2. js对HTML字符转义与反转义

    注意: 在编写html时,经常需要转义,才能正常显示在页面上. 并且,还可以防止xss. 解决方案: 一, 使用正则: 使用正则转码: var value = document.getElementB ...

  3. JavaScript对HTML字符转义与反转义(转码和解码)

    HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式 一.用浏览器 ...

  4. javascript对HTML字符转义与反转义

    1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在html中书写“&”,显示在界面的中的依然是“&”. 这时候,就 ...

  5. XSS攻击解决办法 Spring mvc databinder

    XSS攻击解决办法 一.SpringMVC架构下@InitBinder方法 Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解, ...

  6. XSS研究2-来自内部的XSS攻击的防范

    引入: 前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击.   实践:  http://www.cnblogs.com/crazy ...

  7. PHP防止SQL注入和XSS攻击

    PHP防止SQL注入和XSS攻击PHP防范SQL注入是一个非常重要的安全手段.一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力.说到网站安全,就不得不提到SQL注入( ...

  8. xss攻击和csrf攻击的定义及区别

    1.CSRF的基本概念.缩写.全称 CSRF(Cross-site request forgery):跨站请求伪造. PS:中文名一定要记住.英文全称,如果记不住也拉倒. 2.CSRF的攻击原理 用户 ...

  9. xss攻击与防御

    一.XSS攻击 Cross Site Scripting跨站脚本攻击 利用js和DOM攻击. 盗用cookie,获取敏感信息 破坏正常页面结构,插入恶意内容(广告..) 劫持前端逻辑 DDos攻击效果 ...

  10. 初识XSS攻击

    初识XSS攻击 本文参考于<白帽子讲Web安全>第3章跨站脚本攻击(XSS),该书出版于2014年,因而现在可能存在一些新场景或新技术而未被提及,但本文对学习和了解XSS攻击仍具有重要价值 ...

随机推荐

  1. nginx、rabbitmq、redis、zookeeper、zkui安装脚本

    nginx安装脚本 #!/bin/bash yum install -y wget pcre-devel openssl openssl-devel gcc ###安装perl### cd /usr/ ...

  2. 【PySide6】QChart笔记(二)—— QBarSeries的使用

    一.QBarSeries简介 1. 官方描述 https://doc.qt.io/qtforpython-6/PySide6/QtCharts/QBarSeries.html [译注:官方文档内容过于 ...

  3. 2023浙江省大学生信息安全竞赛决赛 Cry+Misc wp

    搞到了一些附件,做做看难度如何. CRYPTO R_r 1.题目信息 查看代码 from Crypto.Util.number import * import random from gmpy2 im ...

  4. JavaSript 数组

    添加数组 push是添加在数组的末位,unshift是添加在首位 let arr= ['a','b','c'] arr.push('d') arr.unshift('E')

  5. Android 11 使用 BroadcastReceiver 监听短消息

    使用装有MIUI系统的小米手机,静态注册的广播接收器监听短消息. 在AndroidManifest.xml中声明权限 <uses-permission android:name="an ...

  6. Unity学习笔记--数据持久化之PlayerPrefs的使用

    数据持久化 PlayerPrefs相关 PlayerPrefs是Unity游戏引擎中的一个类,用于在游戏中存储和访问玩家的偏好设置和数据.它可以用来保存玩家的游戏进度.设置选项.最高分数等信息.Pla ...

  7. Java开发者的Python快速进修指南:异常捕获

    在之前的学习中,我们已经讲解了函数和控制流等基本概念.然而,在接触实际业务时,你会发现异常捕获也是必不可少的一部分,因为在Java编程中,异常处理是不可或缺的.Python的异常捕获与Java的异常捕 ...

  8. 一个NET8 AOT编译的辅助项目,让你的任何可执行应用快速部署为服务

    不知道大家有没有和小编一样,很多时候想将自己的一些应用转为服务运行,比如一些控制台应用或者.NET Core应用,但是又不想重新编码,把他们转为服务,本文将给大家提供些我使用过的方法,并提供一个基于N ...

  9. Centos、openEuler OS更改源地址

    1.配置openEuler软件源仓库 注:以openEuler OS为例,Centos OS相似 vim /etc/yum.repos.d/openEuler.repo 2.常用的源地址 #华为源: ...

  10. [ARC156D] Xor Sum 5

    Problem Statement You are given a sequence of $N$ non-negative integers $A=(A_1,A_2,\dots,A_N)$ and ...