欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

HTML 转义字符:使用转义和转回 HTML 字符的 xss 攻击

最编程 2024-04-28 11:24:11
...

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,常见的转义符

字符

转义后的字符

&

&

<

&lt;

>

&gt;

"

&quot;

'

&#x27;

/

&#x2F;

转义只是防止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;

推荐阅读