【安全】web中的常见编码&;浅析浏览器解析机制_web网站码源(3)

【安全】web中的常见编码&;浅析浏览器解析机制_web网站码源(3)先自我介绍一下 小编浙江大学毕业 去过华为 字节跳动等大厂 目前阿里 P7 深知大多数程序员 想要提升技能 往往是自己摸索成长 但自己不成体系的自学效果低效又漫长 而且极易碰到天花板技术停滞不前 因此收集整理了一份 2024 年最新网络安全全套学习资料

大家好,我是讯享网,很高兴认识大家。

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
讯享网
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

ASCII (American Standard Code for Information Interchange,美国信息交换标准代码)

计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有01两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000

上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。

ASCII码对照  👉  点此进入

二、URL编码

URL:

URL - 统一资源定位器(Uniform Resource Locator)

  • Web 浏览器使用 URL 从 Web 服务器请求页面。
  • URL 只能使用 ASCII 字符集 通过因特网进行发送。
  • 由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。

URL编码:

  • 将字符转换为可通过因特网传输的格式。
  • 使用后跟十六进制数字的 “%” 替代不安全的 ASCII 字符。
  • URL 不能包含空格。URL 编码通常使用加号(+)或 %20 替代空格

👉URL编码对照表以及编码解码工具

三、Unicode编码

统一码(Unicode),也叫万国码、单一码,由统一码联盟开发,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。

Unicode 源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计算机只要支持这一个字符集,就能显示所有的字符,再也不会有乱码了。

它从 0 开始,为每个符号指定一个编号,这叫做”码点”(code point)。比如,码点 0 的符号就是 null(表示所有二进制位都是 0)。

👉在线 Unicode 编码转换

四、HTML实体编码

为什么有HTML实体编码

在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。

  • HTML 实体是一段以连字号 (&)开头、以分号 (;)结尾的文本 (字符串),形如 j
  • 实体常常用于显示保留字符 (这些字符会被解析为 HTML 代码)和不可见的字符 (如“不换行空格”)
  • 应用场景:在前端,一般为了避免 XSS 攻击,会将 <> 编码为 < 与 >,这些就是 HTML 实体编码
  • 使用须知:在 HTML 转义时,仅仅只需要对六个字符进行编码:&、<、>、"、’ 和 `。 我们可以使用 he 库进行编码及转义

👉 在线Html实体编码解码 (config.net.cn)")

结合编码理解浏览器解析机制

<a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29">aaa</a> 

讯享网

讯享网<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:%61%6c%65%72%74%28%32%29"> 

<a href="javascript%3aalert(3)"></a> 

讯享网<div>&#60;img src=x onerror=alert(4)&#62;</div> 

<textarea>&#60;script&#62;alert(5)&#60;/script&#62;</textarea> 

分析:这个看起来和④差不多,但其实与都是RCDATA元素,即在这俩标签里面,不可能有别的标签存在,所以最后也会把<>变成实体编码<br/> 结果:执行失败


讯享网<textarea><script>alert(6)</script></textarea> 

分析:这里与⑤做对照,就算<>不用html实体编码,最后也不会识别到


<button onclick="confirm('7&#39;);">Button</button> 

讯享网<button onclick="confirm('8\u0027);">Button</button> 

分析:confirm函数里面用了unicode编码,没别的编码了,所以会解析过后会丢给js模块去处理,但是unicode只能用来表示字符串和标识符,所以最后右边的’没有解析成功

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

小讯
上一篇 2025-01-26 17:17
下一篇 2025-02-18 18:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/25867.html