xss与转义符
xss简单来说:
-
XSS 攻击是页面被注入了恶意的代码
-
XSS 漏洞是 可以让攻击者注入恶意代码可执行的漏洞
具体参看之前写的:
-
前端安全配置xss预防针Content-Security-Policy(csp)配置详解 www.zhoulujun.cn/html/webfro…
-
script新属性integrity与web安全,再谈xss www.zhoulujun.cn/html/webfro…
为了xss,常见的转义符
字符
转义后的字符
&
&
<
<
>
>
"
"
'
'
/
/
转义只是防止xss攻击的一种手段之一,更多请查看:《web开发前端安全问题总结——web前端安全问题汇总》
html转义与反转义方法
html转义
lodashjs
lodashjs作为常用,集成了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 = `<script src='let doc = new DOMParser().parseFromString(str, 'text/html');
console.log(doc.documentElement.textContent);
字符串替换处理 转义与反转义
就是正则替换,这里想不讲了,能用库太多了,去看一下源码就好了
HTML常用转义字符对照表
最常用的字符实体 Character Entities
显示
说明
实体名称
实体编号
半方大的空白
全方大的空白
不断行的空白格
<
小于
<
<
>
大于
>
>
&
&符号
&
&
"
双引号
"
"
©
版权
©
©
®
已注册商标
®
®
™
商标(美国)
™
™
×
乘号
×
×
÷
除号
÷
÷
ISO 8859-1 (Latin-1)字符集
HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集。
备注:为了方便起见,以下表格中,“实体名称”简称为“名称”,“实体编号”简称为“编号”
显示
名称
编号
显示
名称
编号
显示
名称
编号
显示
名称
编号
显示
名称
编号
¡
¡
¡
¢
¢
¢
£
£
£
¤
¤
¤
¥
¥
¥
¦
¦
¦
§
§
§
¨
¨
¨
©
©
©
ª
ª
ª
«
«
«
¬
¬
¬
®
®
®
¯
¯
¯
°
°
°
±
±
±
²
²
²
³
³
³
´
´
´
µ
µ
µ
¶
¶
¶
·
·
·
¸
¸
¸
¹
¹
¹
º
º
º
»
»
»
¼
¼
¼
½
½
½
¾
¾
¾
¿
¿
¿
À
À
À
Á
Á
Á
Â
Â
Â
Ã
Ã
Ã
Ä
Ä
Ä
Å
Å
Å
Æ
Æ
Æ
Ç
Ç
Ç
È
È
È
É
É
É
Ê
Ê
Ê
Ë
Ë
Ë
Ì
Ì
Ì
Í
Í
Í
Î
Î
Î
Ï
Ï
Ï
Ð
Ð
Ð
Ñ
Ñ
Ñ
Ò
Ò
Ò
Ó
Ó
Ó
Ô
Ô
Ô
Õ
Õ
Õ
Ö
Ö
Ö
×
×
×
Ø
Ø
Ø
Ù
Ù
Ù
Ú
Ú
Ú
Û
Û
Û
Ü
Ü
Ü
Ý
Ý
Ý
Þ
Þ
Þ
ß
ß
ß
à
à
à
á
á
á
â
â
â
ã
ã
ã
ä
ä
ä
å
å
å
æ
æ
æ
ç
ç
ç
è
è
è
é
é
é
ê
ê
ê
ë
ë
ë
ì
ì
ì
í
í
í
î
î
î
ï
ï
ï
ð
ð
ð
ñ
ñ
ñ
ò
ò
ò
ó
ó
ó
ô
ô
ô
õ
õ
õ
ö
ö
ö
÷
÷
÷
ø
ø
ø
ù
ù
ù
ú
ú
ú
û
û
û
ü
ü
ü
ý
ý
ý
þ
þ
þ
ÿ
ÿ
ÿ
数学和希腊字母标志symbols, mathematical symbols, and Greek letters
显示
名称
编号
显示
名称
编号
显示
名称
编号
显示
名称
编号
显示
名称
编号
ƒ
ƒ
ƒ
Α
Α
Α
Β
Β
Β
Γ
Γ
Γ
Δ
Δ
Δ
Ε
Ε
Ε
Ζ
Ζ
Ζ
Η
Η
Η
Θ
Θ
Θ
Ι
Ι
Ι
Κ
Κ
Κ
Λ
Λ
Λ
Μ
Μ
Μ
Ν
Ν
Ν
Ξ
Ξ
Ξ
Ο
Ο
Ο
Π
Π
Π
Ρ
Ρ
Ρ
Σ
Σ
Σ
Τ
Τ
Τ
Υ
Υ
Υ
Φ
Φ
Φ
Χ
Χ
Χ
Ψ
Ψ
Ψ
Ω
Ω
Ω
α
α
α
β
β
β
γ
γ
γ
δ
δ
δ
ε
ε
ε
ζ
ζ
ζ
η
η
η
θ
θ
θ
ι
ι
ι
κ
κ
κ
λ
λ
λ
μ
μ
μ
ν
ν
ν
ξ
ξ
ξ
ο
ο
ο
π
π
π
ρ
ρ
ρ
ς
ς
ς
σ
σ
σ
τ
τ
τ
υ
υ
υ
φ
φ
φ
χ
χ
χ
ψ
ψ
ψ
ω
ω
ω
?
ϑ
ϑ
?
ϒ
ϒ
?
ϖ
ϖ
•
•
•
…
…
…
′
′
′
″
″
″
‾
‾
‾
⁄
⁄
⁄
℘
℘
℘
ℑ
ℑ
ℑ
ℜ
ℜ
ℜ
™
™
™
ℵ
ℵ
ℵ
←
←
←
↑
↑
↑
→
→
→
↓
↓
↓
↔
↔
↔
↵
↵
↵
⇐
⇐
⇐
⇑
⇑
⇑
⇒
⇒
⇒
⇓
⇓
⇓
⇔
⇔
⇔
∀
∀
∀
∂
∂
∂
∃
∃
∃
∅
∅
∅
∇
∇
∇
∈
∈
∈
∉
∉
∉
∋
∋
∋
∏
∏
∏
∑
∑
∑
−
−
−
∗
∗
∗
√
√
√
∝
∝
∝
∞
∞
∞
∠
∠
∠
∧
∧
∧
∨
∨
∨
∩
∩
∩
∪
∪
∪
∫
∫
∫
∴
∴
∴
∼
∼
∼
∝
≅
≅
≈
≈
≈
≠
≠
≠
≡
≡
≡
≤
≤
≤
≥
≥
≥
⊂
⊂
⊂
⊃
⊃
⊃
⊄
⊄
⊄
⊆
⊆
⊆
⊇
⊇
⊇
⊕
⊕
⊕
⊗
⊗
⊗
⊥
⊥
⊥
⋅
⋅
⋅
?
⌈
⌈
?
⌉
⌉
?
⌊
⌊
?
⌋
⌋
?
⟨
⟨
?
⟩
⟩
◊
◊
◊
♠
♠
♠
♣
♣
♣
♥
♥
♥
♦
♦
♦
重要的国际标记markup-significant and internationalization characters
显示
名称
编号
显示
名称
编号
显示
名称
编号
显示
名称
编号
显示
名称
编号
"
"
"
&
&
&
<
<
<
>
>
>
Œ
Œ
Œ
œ
œ
œ
Š
Š
Š
š
š
š
Ÿ
Ÿ
Ÿ
ˆ
ˆ
ˆ
˜
˜
˜
–
–
–
—
—
—
‘
‘
‘
’
’
’
‚
‚
‚
“
“
“
”
”
”
„
„
„
†
†
†
‡
‡
‡
‰
‰
‰
‹
‹
‹
›
›
›
€
€
€
JavaScript转义符
转义序列
字符
\b
退格
\f
走纸换页
\n
换行
\r
回车
\t
横向跳格 (Ctrl-I)
\'
单引号
\"
双引号
\\
反斜杠
富文本通用转义字符
字符
十进制
转义字符
描述
@
@
&commat
at 符号
©
©
©
版权符号
!
!
&excl
感叹号
¡
¡
¡
倒置感叹号
:
:
&colon
冒号
,
,
&comma
逗号
·
·
·
中间点
‘
'
&apos
撇号
‘
‘
&lsquo
左单引号
“
“
&ldquo
左双引号
(
(
&lpar
左括号
[
[
&lsqb
左方括号
{
{
&lcub
左花括号
§
§
§
分节符号
_
_
&lowbar
单下划线
|
|
&verbar
竖线
‖
‖
&Verbar
双竖线
∠
∠
&ang
角
#
&num
数字标志
$
$
&dollar
美元符号
%
%
&percnt
百分号
‰
‰
&permil
千分号
‱
‱
pertenk
万分号
*
*
&ast
星号
/
/
&sol
斜线符号
+
&add
加号
×
×
×
乘号
=
=
&equal
等于号
≈
≈
&asymp
约等于
<
<
<
小于号
≤
≤
&le
小于等于
¹
¹
¹
上标 1
²
²
²
上标 2
³
³
³
上标 3
&
&
&
and 符号
®
®
®
注册商标符
?
?
&quest
问号
¿
¿
¿
倒置问号
;
;
&semi
分号
.
.
&period
句号
•
•
&bull
加重号
“
"
"
引号
’
’
&rsquo
右单引号
”
”
&rdquo
右双引号
)
)
&rpar
右括号
]
]
&rsqb
右方括号
}
}
&rcub
右花括号
¶
¶
¶
段落符号
__
̲
&UnderBar
双下划线
¦
¦
¦
间断竖线
…
…
&hellip
三点省略号
^
^
&Hat
hat符号
π
ρ
&pi
圆周率
¥
¥
¥
元符号
°
°
°
度符号
√
√
&radic
平方根
∞
∞
&infin
正无穷
±
±
±
加减符号
\
&bsol
反斜线符号
–
–
&ndash
减号
÷
÷
÷
除号
≠
≠
&ne
不等于
≡
≡
&equiv
相当于
>
>
>
大于号
≥
≥
&ge
大于等于
¼
¼
¼
四分之一
½
½
½
二分之一
¾
¾
¾
四分之三
HTML特殊转义字符对照表
HTML特殊转义字符对照表
字符
十进制
转义字符
字符
十进制
转义字符
字符
十进制
转义字符
?
¡
¡
Á
Á
Á
á
á
á
¢
¢
¢
Â
Â
ˆ
â
â
â
£
£
£
Ã
Ã
Ã
ã
ã
ã
¤
¤
¤
Ä
Ä
Ä
ä
ä
ä
¥
¥
¥
Å
Å
˚
å
å
å
|
¦
¦
Æ
Æ
Æ
æ
æ
æ
§
§
§
Ç
Ç
Ç
ç
ç
ç
¨
¨
¨
È
È
È
è
è
è
©
©
©
É
É
É
é
é
é
a
ª
ª
Ê
Ê
Ê
ê
ê
ê
?
«
«
Ë
Ë
Ë
ë
ë
ë
?
¬
¬
Ì
Ì
Ì
ì
ì
ì
/x7f
Í
Í
Í
í
í
í
®
®
®
Î
Î
Î
î
î
î
ˉ
¯
¯
Ï
Ï
Ï
ï
ï
ï
°
°
°
Ð
Ð
Ð
ð
ð
&ieth;
±
±
±
Ñ
Ñ
Ñ
ñ
ñ
ñ
2
²
²
Ò
Ò
Ò
ò
ò
ò
3
³
³
Ó
Ó
Ó
ó
ó
ó
′
´
´
Ô
Ô
Ô
ô
ô
ô
μ
µ
µ
Õ
Õ
Õ
õ
õ
õ
?
¶
¶
Ö
Ö
Ö
ö
ö
ö
·
·
·
×
×
×
÷
÷
÷
?
¸
¸
Ø
Ø
Ø
ø
ø
ø
1
¹
¹
Ù
Ù
Ù
ù
ù
ù
o
º
º
Ú
Ú
Ú
ú
ú
ú
?
»
»
Û
Û
Û
û
û
û
?
¼
¼
Ü
Ü
Ü
ü
ü
ü
?
½
½
Ý
Ý
Ý
ý
ý
ý
?
¾
¾
Þ
Þ
Þ
þ
þ
þ
?
¿
¿
ß
ß
ß
ÿ
ÿ
ÿ
À
À
À
à
à
à
参考文章:
巧用DOM API实现HTML字符的转义和反转义 www.zhangxinxu.com/wordpress/2…
java转换 HTML字符实体,java特殊字符转义字符串 blog.51cto.com/xionggeclub…
转载本站文章《HTML转义字符:xss攻击与HTML字符的转义和反转义》,
请注明出处:www.zhoulujun.cn/html/webfro…