作者:我们要走下去一直的 | 来源:互联网 | 2023-01-21 10:44
后端开发|php教程javascript,编码,浏览器,解码,php后端开发-php教程夺宝赌博源码,ubuntu查看所有终端,tomcat不能使用多线程,网络爬虫php代码,阿里
后端开发|php教程
Javascript,编码,浏览器,解码,php
后端开发-php教程
夺宝赌博源码,ubuntu查看所有终端,tomcat不能使用多线程,网络爬虫php代码,阿里云怎么部署项目php,毕业seo摘要lzw
');">test
代码如上,当参数input
的值为:%26lt%5cu4e00%26gt
的时候,点击test
文本,弹窗内容为:
想知道,从输入参数到弹窗的整个过程中浏览器是如何对%26lt%5cu4e00%26gt
进行顺序解码的?
google安卓应用源码,ubuntu显示拓展名,tomcat 自签发证书,爬虫更新COOKIE,php甜心100,seo对企业品牌的重要性lzw
php比特币交易网站源码,vscode网站开发,ubuntu上装qq,tomcat7 8.5,statapython爬虫,php 简单教程,seo运营推广机构分类,咨询服务 网站源码,织梦模板还原lzw
回复内容:');">test
代码如上,当参数input
的值为:%26lt%5cu4e00%26gt
的时候,点击test
文本,弹窗内容为:
想知道,从输入参数到弹窗的整个过程中浏览器是如何对%26lt%5cu4e00%26gt
进行顺序解码的?
服务端收到请求,进入代码逻辑处理时
input
的值,被URLDecode
,变为<\u4e00>
浏览器从服务端获取的页面数据就已经变成了<\u4e00>
此时通过查看页面源码
(注意不是页面右键点检查元素
)可以看到
test
浏览器在渲染的时候
作为URL的href字符串 Javascript:alert('<\u4e00>');
被HTMLEntity解码,变为
');">test
这一步可以通过在页面上右键点击test链接
,选择检查元素
,可以看出实际渲染出的dom元素
点击test链接时
执行的其实是一句Javascript代码,其中有一个字符串,''
,里面有一个转义字符\u4e00
,对其进行逆转义
,由前导符\u
可知这是一个unicode编码的转义,将这6个字节的字符串'\u4e00'
转化为一个实际上占3个字节空间的unicode字符'一'
,此时整个字符串占用的内存空间为
如果你直接在代码里写成 alert('');
,这个字符串的内部存储方式也是这样的
最终渲染alert框时
由系统将上字节码,翻译为可显示的对应编码的字符,渲染在屏幕上