TML转义字符:xss攻击与HTML字符的转义和反转义
xss与转义符
xss简单来说:
XSS 攻击是页面被注入了恶意的代码
XSS 漏洞是 可以让攻击者注入恶意代码可执行的漏洞
具体参看之前写的:
web开发前端安全问题总结——web前端安全问题汇总 https://www.zhoulujun.cn/html/webfront/SGML/web/2017_0503_8004.html
前端安全配置xss预防针Content-Security-Policy(csp)配置详解 https://www.zhoulujun.cn/html/webfront/SGML/web/2017_0503_8004.html
script新属性integrity与web安全,再谈xss https://www.zhoulujun.cn/html/webfront/ECMAScript/js6/2018_0521_8115.html
为了xss,常见的转义符
| 字符 | 转义后的字符 |
|---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
/ |
/ |
转义只是防止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 = `<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特殊转义字符对照表
| 字符 | 十进制 | 转义字符 | 字符 | 十进制 | 转义字符 | 字符 | 十进制 | 转义字符 |
|---|---|---|---|---|---|---|---|---|
| ? | ¡ | ¡ | Á | Á | Á | á | á | á |
| ¢ | ¢ | ¢ | Â | Â | ˆ | â | â | â |
| £ | £ | £ | Ã | Ã | Ã | ã | ã | ã |
| ¤ | ¤ | ¤ | Ä | Ä | Ä | ä | ä | ä |
| ¥ | ¥ | ¥ | Å | Å | ˚ | å | å | å |
| | | ¦ | ¦ | Æ | Æ | Æ | æ | æ | æ |
| § | § | § | Ç | Ç | Ç | ç | ç | ç |
| ¨ | ¨ | ¨ | È | È | È | è | è | è |
| © | © | É | É | É | é | é | é | |
| a | ª | ª | Ê | Ê | Ê | ê | ê | ê |
| ? | « | « | Ë | Ë | Ë | ë | ë | ë |
| ? | ¬ | ¬ | Ì | Ì | Ì | ì | ì | ì |
| /x7f | | ­ | Í | Í | Í | í | í | í |
| ® | ® | Î | Î | Î | î | î | î | |
| ˉ | ¯ | ¯ | Ï | Ï | Ï | ï | ï | ï |
| ° | ° | ° | Ð | Ð | Ð | ð | ð | &ieth; |
| ± | ± | ± | Ñ | Ñ | Ñ | ñ | ñ | ñ |
| 2 | ² | ² | Ò | Ò | Ò | ò | ò | ò |
| 3 | ³ | ³ | Ó | Ó | Ó | ó | ó | ó |
| ′ | ´ | ´ | Ô | Ô | Ô | ô | ô | ô |
| μ | µ | µ | Õ | Õ | Õ | õ | õ | õ |
| ? | ¶ | ¶ | Ö | Ö | Ö | ö | ö | ö |
| · | · | · | × | × | × | ÷ | ÷ | ÷ |
| ? | ¸ | ¸ | Ø | Ø | Ø | ø | ø | ø |
| 1 | ¹ | ¹ | Ù | Ù | Ù | ù | ù | ù |
| o | º | º | Ú | Ú | Ú | ú | ú | ú |
| ? | » | » | Û | Û | Û | û | û | û |
| ? | ¼ | ¼ | Ü | Ü | Ü | ü | ü | ü |
| ? | ½ | ½ | Ý | Ý | Ý | ý | ý | ý |
| ? | ¾ | ¾ | Þ | Þ | Þ | þ | þ | þ |
| ? | ¿ | ¿ | ß | ß | ß | ÿ | ÿ | ÿ |
| À | À | À | à | à | à |
参考文章:
巧用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字符的转义和反转义的更多相关文章
- JS对HTML实体字符转义和反转义
一.名词解释 HTML实体字符: 由于在HTML中有些符号是预留的,比如在html中不能直接使用尖括号(‘<’或‘>’),会被误认为标签符号.所以需要通过HTML实体字符去进行替换: HT ...
- js对HTML字符转义与反转义
注意: 在编写html时,经常需要转义,才能正常显示在页面上. 并且,还可以防止xss. 解决方案: 一, 使用正则: 使用正则转码: var value = document.getElementB ...
- JavaScript对HTML字符转义与反转义(转码和解码)
HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式 一.用浏览器 ...
- javascript对HTML字符转义与反转义
1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在html中书写“&”,显示在界面的中的依然是“&”. 这时候,就 ...
- XSS攻击解决办法 Spring mvc databinder
XSS攻击解决办法 一.SpringMVC架构下@InitBinder方法 Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解, ...
- XSS研究2-来自内部的XSS攻击的防范
引入: 前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击. 实践: http://www.cnblogs.com/crazy ...
- PHP防止SQL注入和XSS攻击
PHP防止SQL注入和XSS攻击PHP防范SQL注入是一个非常重要的安全手段.一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力.说到网站安全,就不得不提到SQL注入( ...
- xss攻击和csrf攻击的定义及区别
1.CSRF的基本概念.缩写.全称 CSRF(Cross-site request forgery):跨站请求伪造. PS:中文名一定要记住.英文全称,如果记不住也拉倒. 2.CSRF的攻击原理 用户 ...
- xss攻击与防御
一.XSS攻击 Cross Site Scripting跨站脚本攻击 利用js和DOM攻击. 盗用cookie,获取敏感信息 破坏正常页面结构,插入恶意内容(广告..) 劫持前端逻辑 DDos攻击效果 ...
- 初识XSS攻击
初识XSS攻击 本文参考于<白帽子讲Web安全>第3章跨站脚本攻击(XSS),该书出版于2014年,因而现在可能存在一些新场景或新技术而未被提及,但本文对学习和了解XSS攻击仍具有重要价值 ...
随机推荐
- Acwing周赛102
倍增 这是一道简单数论题 using namespace std; typedef long long LL; const int N = 1e5 + 10; int a[N], n; int div ...
- Unity学习笔记--入门
Unity引擎学习 入门: Unity中的坐标系: 左手坐标系(z轴正方向向里面) x轴:平行屏幕向右正方向 y轴:平行屏幕向上正方向 Z轴:垂直屏幕向内为正方向 [补]openGL是右手坐标系 Di ...
- 【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
问题描述 创建PowerShell Azure Durable Function,执行大量的PowerShell脚本操作Azure Resource,遇见了一个非常非常奇怪的问题: Function ...
- 生命游戏(4.2leetcode每日打卡)
根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞都具有一个初始状 ...
- C#12中的Collection expressions(集合表达式语法糖)
C#12中引入了新的语法糖来创建常见的集合.并且可以使用..来解构集合,将其内联到另一个集合中. 支持的类型 数组类型,例如 int[]. System.Span<T> 和 System. ...
- 一篇文章带你掌握Web自动化测试工具——Selenium
一篇文章带你掌握Web自动化测试工具--Selenium 在这篇文章中我们将会介绍Web自动化测试工具Selenium 如果我们需要学习相关内容,我们需要掌握Python,PyTest以及部分前端知识 ...
- Codeforces Round 906 (Div. 2)A-E1
A. Doremy's Paint 3 记数组中数的种类数为\(k\),当\(k=1\)时,答案为\(yes\):当\(k=2\)时,记两个种类的数的个数差为\(d\),当\(d≤1\)时,答案为\( ...
- [HDU4117] GRE
Recently George is preparing for the Graduate Record Examinations (GRE for short). Obviously the mos ...
- C++学习笔记一:windows系统配置C++开发环境(VS code+g++/clang++)
1.下载vscode 官网下载地址: https://code.visualstudio.com/ 安装时选择把软件加入到环境变量中这个选项 2.打开vscode,安装c/c++扩展插件 3.下载gc ...
- 【最佳实践】京东小程序-LBS业务场景的性能提升
一.前言 1.1 京东LBS门详业务介绍 京东LBS门详目前已经支持了仓网.药急送.天选.小时达POP多种业务,并且具备了多端的能力,一套代码可以在京东app.健康app.微信小程序中运行,一定程度上 ...