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. 立方骑士(lgP7354)

    来水篇题解((( 图炸了,去洛谷博客看吧. 注:在本篇题解中, \(K\) 表示国王, \(N\) 表示骑士,不同颜色的 \(X\) 表示该位置国王可以达到,且被与之相同颜色的骑士封锁.方法不唯一,图 ...

  2. ac自动机|非自动ac机(当然也有) 笔记+图解

    自动ac机 system("poweroff"); // linux system("shutdown -s -f"); // windows ac自动机 在计 ...

  3. MySQL高级SQL语句

    MySQL高级SQL语句 围绕两张表 Location表 Store_Info表  #select选择  SELECT Store_Name FROM Store_Info;  #distinct去重 ...

  4. Android反编译之修改应用包名

    前言 近期看B站数码区这条视频 [大米]破处理器,它能行吗?K50电竞版评测_哔哩哔哩_bilibili 时,发现了UP主的一个比较骚的操作: 嗯?apk文件可以直接拿来使用修改包名的?作为 Andr ...

  5. 实例讲解C++连接各种数据库,包含SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库

    C++ 是一种通用的编程语言,可以使用不同的库和驱动程序来连接各种数据库.以下是一些示例代码,演示如何使用 C++ 连接 SQL Server.MySQL.Oracle.ACCESS.SQLite 和 ...

  6. PEP9

    利用循环语句 counter 是计数器 需要在后面输入个3才是3个数字之和 Set sum to 0 Set counter to 0 Set limit to number of values to ...

  7. MODBUS转PROFINET网关TS-180 网关连接西门子 PLC 和工业称重仪表

    随着科技的高速发展,工业自动化行业对日益多样的称重需求越来越高,上海某公司在国内的一个 工业自动化项目中,监控中心系统需要远程实时采集工业称重仪表测量的各种称重参数.该系统使用的是 西门子 S7-30 ...

  8. 关于Anolis8/Centos8系统重启后ip地址丢失的原因

    关于Anolis8/Centos8系统重启后ip地址丢失的原因 #.今天把之前在VMware安装的Anolis8系统重启了,启动之后发现Xshell连接不上.在VMware上登录后执行ip a命令发现 ...

  9. Salesforce LWC学习(四十六) 自定义Datatable实现cell onclick功能

    本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable 背景:我们有时会有这种类 ...

  10. [ABC280F] Pay or Receive

    Problem Statement There are $N$ towns numbered $1,\ldots,N$ and $M$ roads numbered $1,\ldots,M$. Roa ...