栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【科普文】JavaScript前世今生 and 安全隐患

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【科普文】JavaScript前世今生 and 安全隐患

目录

ECMAScript

 javascript前世今生

 版本

 ES6 特性

 引擎

 V8

 SpiderMonkey

 JavaScriptCore

 ChakraCore

 JScript

 JerryScript

 WebAssembly

 简介

 执行

 安全


ECMAScript  JavaScript的前世今生

ECMAScript是一种由ECMA国际通过ECMA-262标准化的脚本程序设计语言,它往往被称为JavaScript或JScript。简单的,可以认为ECMAScript是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。

 版本

1997年6月,首版发布。1998年6月,进行了格式修正,以使得其形式与ISO/IEC16262国际标准一致。1999年12月,引入强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变。而后由于关于语言的复杂性出现分歧,第4版本被放弃,其中的部分成为了第5版本及Harmony的基础。

2009年12月,第五版发布,新增“严格模式(strict mode)”,澄清了许多第3版本的模糊规范,并适应了与规范不一致的真实世界实现的行为。增加了部分新功能,如getters及setters,支持JSON以及在对象属性上更完整的反射。

2015年6月,第6版发布,最早被称作是 ECMAScript 6(ES6),添加了类和模块的语法,迭代器,Python风格的生成器和生成器表达式,箭头函数,二进制数据,静态类型数组,集合(maps,sets 和 weak maps),promise,reflection 和 proxies。

2016年6月,ECMAScript 2016(ES2016)发布,引入 Array.prototype.includes 、指数运算符、SIMD等新特性。

2017年6月,ECMAScript 2017(ES2017)发布,多个新的概念和语言特性。

2018年6月,ECMAScript 2018 (ES2018)发布包含了异步循环,生成器,新的正则表达式特性和 rest/spread 语法。

 ES6 特性
  • const / let
  • 模板字面量
  • 解构

    • [a, b] = [10, 20]
  • 对象字面量简写法
  • for...of 循环
  • ...xxx 展开运算符
  • 可变参数
  • 箭头函数
  • 默认参数函数
  • 默认值与解构
 引擎  V8

V8是Chrome的JavaScript语言处理程序(VM)。其引擎由TurboFan、Ignition和Liftoff组成。其中Turbofan是其优化编译器,Ignition则是其解释器,Liftoff是WebAssembly的代码生成器。

 SpiderMonkey

SpiderMonkey是Mozilla项目的一部分,是一个用 C/C++ 实现的JavaScript脚本引擎。

 JavaScriptCore

JavaScriptCore的优化执行分为四个部分,LLInt、Baseline、DFG、FTL。LLInt是最开始的解释执行部分,Baseline是暂时的JIT,DFG阶段开始做一定的优化,FTL阶段做了充分的优化。

 ChakraCore

ChakraCore是一个完整的JavaScript虚拟机,由微软实现,用于Edge浏览器以及IE的后期版本中。

 JScript

JScript是由微软开发的脚本语言,是微软对ECMAScript规范的实现,用于IE的早期版本中。

 JerryScript

JerryScript是一个适用于嵌入式设备的小型JavaScript引擎,由三星开发并维护。

 

 WebAssembly  简介

简而言之,WASM是一种分发要在浏览器中执行的代码的新方法。它是一种二进制语言,但是无法直接在处理器上运行。在运行时,代码被编译为中间字节代码,可以在浏览器内快速转换为机器代码,然后比传统JavaScript更有效地执行。

 执行

虽然浏览器可能以不同的方式来实现Wasm支持,但是使用的沙盒环境通常是JavaScript沙箱。

在浏览器中运行时,Wasm应用程序需要将其代码定义为单独的文件或JavaScript块内的字节数组。 然后使用JavaScript实例化文件或代码块,目前不能在没有JavaScript包装器的情况下直接在页面中调用Wasm。

虽然Wasm可以用C / C++等语言编写,但它本身不能与沙箱之外的环境进行交互。这意味着当Wasm应用程序想要进行输出文本等操作时,它需要调用浏览器提供的功能,然后使用浏览器在某处输出文本。

Wasm中的内存是线性的,它在Wasm应用程序和JavaScript之间共享。 当Wasm函数将字符串返回给JavaScript时,它实际上返回一个指向Wasm应用程序内存空间内位置的指针。 Wasm应用程序本身只能访问分配给它的JavaScript内存部分,而不是整个内存空间。

 安全

Wasm的设计从如下几个方面考虑来保证Wasm的安全性

  • 保护用户免受由于无意的错误而导致漏洞的应用程序的侵害
  • 保护用户免受故意编写为恶意的应用程序的侵害
  • 为开发人员提供良好的缓解措施

具体的安全措施有

  • Wasm应用程序在沙箱内运行
  • Wasm无法对任意地址进行函数调用。Wasm采用对函数进行编号的方式,编号存储在函数表中
  • 间接函数调用受类型签名检查的约束
  • 调用堆栈受到保护,这意味着无法覆盖返回指针
  • 实现了控制流完整性,这意味着调用意外的函数将失败
   推荐阅读

渗透测试实战专栏

优质资源

  1.  Java实现照片GPS定位【完整脚本】
  2. ReadPicExif.zip_-Java文档类资源-CSDN下载https://download.csdn.net/download/weixin_42350212/20024262
  3. Python实现照片GPS定位【完整脚本】
  4. python定位照片精确位置完整代码脚本_Python手机号定位-Python文档类资源-CSDN下载https://download.csdn.net/download/weixin_42350212/19776215
  5. 女神忘记相册密码 python20行代码打开【完整脚本】
  6. 女神忘记相册密码python20行代码打开.py_-Python文档类资源-CSDN下载https://download.csdn.net/download/weixin_42350212/19871942
  7. python修改证件照底色、大小、背景、抠图【完整源码】https://download.csdn.net/download/weixin_42350212/19815306
  8. python修改证件照底色、大小、背景、抠图【完整源码】_-Python文档类资源-CSDN下载https://download.csdn.net/download/weixin_42350212/19815306 

 

python实战

  • 【python实战https://blog.csdn.net/weixin_42350212/article/details/117031929
  • 【python实战】前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现https://blog.csdn.net/weixin_42350212/article/details/117031929
  • 【python实战】python你TM太皮了——区区30行代码就能记录键盘的一举一动https://blog.csdn.net/weixin_42350212/article/details/115399658
  • 【python实战】女神相册密码忘记了,我只用Python写了20行代码~~~https://blog.csdn.net/weixin_42350212/article/details/115580004
 【资源推荐】 渗透测试专用系统

kali-linux-e17-2019.1a-amd64.iso系统镜像

kali-linux-e17-2019.1a-amd64.iso系统镜像_kalilinux镜像文件iso,kalilinux系统镜像-Linux文档类资源-CSDN下载

kali-linux-2018.4-amd64 操作系统

kali-linux-2018.4-amd64操作系统-Linux文档类资源-CSDN下载

manjaro-xfce-17.1.7-stable-x86_64.iso系统镜像

manjaro-xfce-17.1.7-stable-x86_64.iso系统镜像_manjaro镜像下载-Linux文档类资源-CSDN下载

WiFi专用渗透系统 nst-32-11992.x86_64.iso操作系统镜像

nst-32-11992.x86_64.iso操作系统镜像.zip-Linux文档类资源-CSDN下载

Parrot-security-4.1_amd64.iso 操作系统镜像

Parrot-security-4.1_amd64.iso操作系统镜像-Linux文档类资源-CSDN下载

manjaro-xfce-17.1.7-stable-x86_64 操作系统

manjaro-xfce-17.1.7-stable-x86_64操作系统-Linux文档类资源-CSDN下载

cyborg-hawk-linux-v-1.1 操作系统

cyborg-hawk-linux-v-1.1操作系统-Linux文档类资源-CSDN下载


【kali常用工具】上网行为监控工具       

 

上网行为工具-网络安全文档类资源-CSDN下载

【kali常用工具】抓包工具Charles Windows64位 免费版

抓包工具CharlesWindows64位免费版-网络监控文档类资源-CSDN下载

【kali常用工具】图印工具stamp.zip

图印工具stamp.zip-制造文档类资源-CSDN下载

 【kali常用工具】brutecrack工具[WIFIPR中文版]及wpa/wpa2字典

brutecrack工具[WIFIPR中文版]及wpa/wpa2字典_wifi密码字典,wifi字典-其它文档类资源-CSDN下载

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号