• home > webfront > SGML > html >

    HTML转义字符:xss攻击与HTML字符的转义和反转义

    Author:zhoulujun Date:

    HTML常用转义字符对照表:最常用的字符实体 Character Entities、ISO 8859-1 (Latin-1)字符集、数学和希腊字母标志、重要的国际标记、JavaScript转义符、富文本通用转义字符、HTML特殊转义字符对照表

    xss与转义符

    xss简单来说:

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

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

    具体参看之前写的:

    为了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;
    &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特殊转义字符对照表
    字符十进制转义字符字符十进制转义字符字符十进制转义字符
    ?&#161;&iexcl;Á&#193;&Aacute;á&#225;&aacute;
    &#162;&cent;Â&#194;&circ;â&#226&acirc;
    &#163;&pound;Ã&#195;&Atilde;ã&#227;&atilde;
    ¤&#164;&curren;Ä&#196;&Aumlä&#228;&auml;
    &#165;&yen;Å&#197;&ring;å&#229;&aring;
    |&#166;&brvbar;Æ&#198;&AElig;æ&#230;&aelig;
    §&#167;&sect;Ç&#199;&Ccedil;ç&#231;&ccedil;
    ¨&#168;&uml;È&#200;&Egrave;è&#232;&egrave;
    ©&#169;&copy;É&#201;&Eacute;é&#233;&eacute;
    a&#170;&ordf;Ê&#202;&Ecirc;ê&#234;&ecirc;
    ?&#171;&laquo;Ë&#203;&Euml;ë&#235;&euml;
    ?&#172;&not;Ì&#204;&Igrave;ì&#236;&igrave;
    /x7f&#173;&shy;Í&#205;&Iacute;í&#237;&iacute;
    ®&#174;&reg;Î&#206;&Icirc;î&#238;&icirc;
    ˉ&#175;&macr;Ï&#207;&Iuml;ï&#239;&iuml;
    °&#176;&deg;Ð&#208;&ETH;ð&#240;&ieth;
    ±&#177;&plusmn;Ñ&#209;&Ntilde;ñ&#241;&ntilde;
    2&#178;&sup2;Ò&#210;&Ograve;ò&#242;&ograve;
    3&#179;&sup3;Ó&#211;&Oacute;ó&#243;&oacute;
    &#180;&acute;Ô&#212;&Ocirc;ô&#244;&ocirc;
    μ&#181;&micro;Õ&#213;&Otilde;õ&#245;&otilde;
    ?&#182;&para;Ö&#214;&Ouml;ö&#246;&ouml;
    ·&#183;&middot;&times;&#215;&times;÷&#247;&divide;
    ?&#184;&cedil;Ø&#216;&Oslash;ø&#248;&oslash;
    1&#185;&sup1;Ù&#217;&Ugrave;ù&#249;&ugrave;
    o&#186;&ordm;Ú&#218;&Uacute;ú&#250;&uacute;
    ?&#187;&raquo;Û&#219;&Ucirc;û&#251;&ucirc;
    ?&#188;&frac14;Ü&#220;&Uuml;ü&#252;&uuml;
    ?&#189;&frac12;Ý&#221;&Yacute;ý&#253;&yacute;
    ?&#190;&frac34;Þ&#222;&THORN;þ&#254;&thorn;
    ?&#191;&iquest;ß&#223;&szlig;ÿ&#255;&yuml;
    À&#192;&Agrave;à&#224;&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