HTML,url,unicode编码

目录标题

HTML实体编码

实体表示:

以&符号开始,后面跟着一个预定义的实体的名称,或是一个#符号以及字符的十进制数字。

例:

复制代码
<p>hello</p>
<!-- 等同于 -->
十进制
<p>&#104;&#101;&#108;&#108;&#111;</p>
ord('h') -> 114(在ascii表中,h对应104这个数字)
 
<!-- 等同于 -->
十六进制
<p>&#x68;&#x65;&#x6c;&#x6c;&#x6f;</p>
hex(104) -> 68(x代表16进制,16进制下,104 == x68)

urlcode编码

URL 是"统一资源定位符"(Uniform Resource Locator),表示各种资源的互联网地址。
URL 字符转义的方法是,字符的十六进制 ASCII 码前面加上百分号(%)

例:在url地址栏输入?id=1' order by 3 --+

url地址栏会将其解析为:?id=1%27%20order%20by%203%20--+

unicode编码

\u后跟字符的十六进制

例:

复制代码
\u0027
Unicode编码 " ' " (单引号)

小结

ord() --- unicode编码

hex() --- 16进制

oct() --- 8进制

int() --- 10进制

bin() --- 二进制

基础例题

复制代码
1.<a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29">aaa</a>
URL 编码 "javascript:alert(1)"
2.<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:%61%6c%65%72%74%28%32%29">
HTML字符实体编码 "javascript" 和 URL 编码 "alert(2)"
3.<a href="javascript%3aalert(3)"></a>
URL 编码 ":"
4.<div>&#60;img src=x onerror=alert(4)&#62;</div>
HTML字符实体编码 < 和 >
5.<textarea>&#60;script&#62;alert(5)&#60;/script&#62;</textarea>
HTML字符实体编码 < 和 >
6.<textarea><script>alert(6)</script></textarea>

高级例题

编码顺序

HTML->urlconde->javascript(unicode)

复制代码
7.<button onclick="confirm('7&#39;);">Button</button>
HTML字符实体编码 " ' " (单引号)
8.<button onclick="confirm('8\u0027);">Button</button>
Unicode编码 " ' " (单引号)
9.<script>&#97;&#108;&#101;&#114;&#116&#40;&#57;&#41;&#59</script>
HTML字符实体编码 alert(9);
10.<script>\u0061\u006c\u0065\u0072\u0074(10);</script>
Unicode 编码 alert
11.<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>
Unicode 编码 alert(11)
12.<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>
Unicode 编码 alert 和 12
13.<script>alert('13\u0027)</script>
Unicode 编码 " ' " (单引号)
14.<script>alert('14\u000a')</script>
Unicode 编码换行符(0x0A)
15.<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>
相关推荐
云枫晖12 分钟前
Webapck系列-初识Webpack
前端·javascript
jiangzhihao05151 小时前
升级到webpack5
前端·javascript·vue.js
哆啦A梦15881 小时前
36 注册
前端·javascript·html
WujieLi1 小时前
初识 Vite+:一文了解 Rust 驱动的新一代前端工具链
javascript·rust·vite
可触的未来,发芽的智生1 小时前
新奇特:神经网络速比器,小镇债务清零的算法奇缘
javascript·人工智能·python
东东2332 小时前
前端开发中如何取消Promise操作
前端·javascript·promise
掘金安东尼2 小时前
官方:什么是 Vite+?
前端·javascript·vue.js
渣哥2 小时前
你以为 Bean 只是 new 出来?Spring BeanFactory 背后的秘密让人惊讶
javascript·后端·面试
地方地方3 小时前
Vue依赖注入:provide/inject 问题解析与最佳实践
前端·javascript·面试
热心市民小岳3 小时前
Konva.js 实现 腾讯文档 多维表格
前端·javascript