HTML编码转换

HTML实体编码转换

html中不允许使用尖括号,因为会被误认为标签,但是实际生活中我们是有使用尖括号的需求的,所以我们用一种编码的方式来代替具体的符号。

即 &#加上ascii码加上分号;
a --> a

html可以识别这种编码,但是js没有办法识别。故实际在注入的时候,我们可能需要使用svg标签来执行,就像这样

<svg><script>alert&#40;1&#41;</script></svg>

## 这里&#40和&#41分别是左右括号。

至于为什么可以用svg标签,之前没有接触过,粗略查了一下,这个好像是一个画图库里的使用工具,所以我猜测可能是因为需要用函数对标签里的东西进行绘画啥的。
HTML编码转换
顺手写了个小脚本,用于转换字符串为html实体编码。

s = input("Input str : ")
target = ''
for i in s:
    tmp = "&#" + str(ord(i)) + ";"
    target += tmp

print("HTML encode is: \n%s" % target)

# 运行效果
# D:\vscode\Web_Security>python3 html_encode.py
# Input str:alert(1)
# Result is 
# &#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;
上一篇:(一)模仿范本创建一个个人主页


下一篇:HTML+CSS基础