打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
苹果为何又如何在 iOS 上禁止 Safari 之外的应用使用 Nitro JIT 编译?
JIT编译需要底层系统支持动态代码生成,对操作系统来说这意味着要支持动态分配带有“可写可执行”权限的内存页。当一个应用程序拥有请求分配可写可执行内存页的权限时,它会比较容易受到攻击从而允许任意代码动态生成并执行,这样就让恶意代码更容易有机可乘。

Safari是iOS内建的浏览器,而JavaScriptCore(又名Nitro)是其中的JavaScript引擎,负责JavaScript代码的执行。为了提供流畅的浏览体验,苹果为JavaScriptCore开发了JIT编译器,并在iOS的Safari上开启。而为了减小由第三方代码引致被攻击的风险,苹果禁止了第三方应用嵌入UIWebView时使用JavaScriptCore的JIT功能。

其实这JIT功能就像iOS上的照片、通信录之类的一样有应用粒度的权限控制。
于是在越狱了的iOS上其实JIT的权限也是可以打开的:How to enable the Nitro Javascript engine for Google Chrome
(但这里并不推荐越狱,只是讨论技术问题而已)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
从前端到全端:JavaScript逆袭之路
姗姗来迟的 JIT 编译支持终上线 iOS 14.2,仿真应用可具有更佳性能
在iOS6.0中设置带图片、链接的富文本邮件签名
猛料!盘古团队 涅槃团队大牛详解 iOS 史上最大漏洞
[WebKit] JavaScriptCore解析
V8内部结构
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服