keac's Bolg.

HTML字符实体

字数统计: 351阅读时长: 1 min
2019/06/09 Share

今天在做耗子师傅的 https://xss.haozi.me

发现对HTML实体字符还不算太深入了解

字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。

  1. 解决HTML代码编写中的一些问题。例如需要在网页上显示小于号(<)和大于号(>),由于它们是HTML的预留标签,可能会被误解析。这时就需要将小于号和大于号写成字符实体:
    1
    2
    3
    小于号这样写:< 或 &#60;
    大于号这样写:> 或 &#62;
    &#十进制; &#x十六进制;
    比如 ) Html 实体字符为 ) )

前面的写法称为实体名称,后面的写法则是实体编号。ISO-8859-1字符集(西欧语言)中两百多个字符设定了实体名称,而对于其它所有字符都可以用实体编号来代替。

  1. 网页编码采用了特定语言的编码,却需要显示来自其它语言的字符。例如,网页编码采用了西欧语言ISO-8859-1,却要在网页中显示中文,这时必须将中文字符以实体形式写入HTML代码中。

比如
<img src=x onerror="alert&#x28;1&#x29;">
可以触发xss

CATALOG