美文网首页
浏览器解码

浏览器解码

作者: Linkingg | 来源:发表于2017-12-31 01:16 被阅读0次

浏览器解码的顺序是: HTML解码->URL解码(目前只发现a标签的href属性会进行该解码)->JS解码
HTML的解码机制
<input type="value1" id="value2" value="value3" onclick="value4" />

对于整个HTML页面而言,会进行HTML解码的只有标签内的value部分,即上面所述的value1到value4
例如

<input type="&#x62;&#x75;&#x74;&#x74;&#x6F;&#x6E;" value="&#x65;&#x78;&#x65;&#x63;" onclick="&#x63;&#x6F;&#x6E;&#x66;&#x69;&#x72;&#x6D;&#x28;&#x27;&#x31;&#x32;&#x33;&#x27;&#x29;" />

会被解码为

<input type="button" value="exec" onclick="confirm('123')">

但是

" (双引号)

是不会进行HTML解码的

HTML编码包括实体编码和两种进制编码&#xH(十六进制格式)、&#D(十进制格式)
JS的解码机制

对于整个HTML页面而言,会进行JS解码的有两个地方,一个是HTML进行解码的部分,即

<input type="value1" id="value2" value="value3" onclick="value4" />

标签内的value部分,另一个是<script>标签所包围的区域

JS只会对变量名、类名、函数名进行UNICODE形式(\uH)的解码

例如

<input type="button" value="exec" onclick="\u0063\u006f\u006e\u0066\u0069\u0072\u006d('123')" />

会被解析为

<input type="button" value="exec" onclick="confirm('123')">

<script>
 var \u0069\u006d\u0067\u0031 = '<img src=@ onerror=alert(123) />';
 \u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074.\u0077\u0072\u0069\u0074\u0065(\u0069\u006d\u0067\u0031);
</script>

会被解析为

<script>
 var img1 = '<img src=@ onerror=alert(123) />';
 document.write(img1);
</script>
JS会对传入函数的参数进行UNICODE形式(\uH)、16进制(\xHH)或者 8进制(\OO)的解码
<input type="button" value="exec" onclick="confirm('\x31\62\u0033')">

会被解析为

<input type="button" value="exec" onclick="confirm('123')">

传入的参数要么是数字,要么是字符串,是字符串的话一定要包含在’(单引号)里面,即不能对最外层的'进行编码

URL的解码规则
<a href="http://www.baidu.com">link</a>

中的http://不可以被URL编码

<a href="javascript:alert(3)">link</a>

中的javascript:也不可以被URL编码
从中可以看出协议是不可以被URL编码的

相关文章

  • 浏览器解码

    浏览器解码的顺序是: HTML解码->URL解码(目前只发现a标签的href属性会进行该解码)->JS解码 HTM...

  • response乱码问题

    在eclipse中想输出中文到浏览器.经历的编解码过程

  • WebStorm 中文乱码问题

    关于html的乱码,总的思考方向如下: 1.解码问题 通俗来说就是告诉浏览器(或者其他解码你的HTML的东西)要用...

  • 用JS进行Base64编码、解码

      从IE10+浏览器开始,所有浏览器就原生提供了Base64编码、解码方法,不仅可以用于浏览器环境,Servic...

  • 页面加载->渲染流程

    渲染流程: 转化:浏览器从磁盘或网络读取HTML的原始字节,浏览器会将这段原始文件按照相应编码规范进行解码(现在一...

  • js逆向 - js逆向加密中Base64方法替换

    btoa() / atob() : 浏览器内置的Base64 编码和解码 1 简单字符串使用 Buffer 方法替...

  • HTML基础

    乱码 问题乱码是由于编辑器的编码格式和浏览器的解码格式不一致造成的 解决编/解码格式保持一致编辑时保存为utf-8...

  • WEB(实验吧)--PHP大法

    提示:注意备份文件访问index.php.txt将 分析代码知道:因为浏览器会自动解码,所以将hackerDJ编码...

  • ubuntu系统安装后firefox无法播放视频

    默认安装完毕ubuntu系统后,自带的firefox无法播放视频。需要安装解码器: 安装后重新打开浏览器即可。

  • SpringBoot实战系列之MVC&浏览器编码解码

    浏览器和框架会有自动进行编码解码的操作,了解这些操作可以方便定位问题 测试清单一 Controller curl ...

网友评论

      本文标题:浏览器解码

      本文链接:https://www.haomeiwen.com/subject/hsfogxtx.html