写点什么

Firefox 46 解决安全问题,改善性能

  • 2016-05-02
  • 本文字数:1383 字

    阅读完需:约 5 分钟

Mozilla 刚刚发布了Firefox 46,该版本修复了多个严重漏洞,并改善了JavaScript JIT 编译器的安全性。

安全和性能改进是Firefox 46 最大的变化。该版本共修复10 个安全漏洞,其中有1 个严重漏洞,4 个高危漏洞,其余6 个为中等严重程度的漏洞。

这个严重漏洞与Mozilla 所称的其他内存安全隐患有关,“某些情况导致的内存错误”证明了该Bug 的存在,Mozilla 团队称,“付出足够努力”就能利用它执行任何代码。

其他高危漏洞则与 Firefox for Android 有关,在这些漏洞的影响下,攻击者有可能通过移动设备的握持方向数据(Orientation data)和动作传感器推测出触屏上的操作。Mozilla 的报告认为,如果不修复这个问题可能危及用户隐私,并有可能暴露“随同用户其他活动输入的 PIN 码”。

该版本中新增了有关 JavaScript Just In Time(JIT)编译器的重要更新。在 Firefox 已启用 W^X JIT 代码这篇博客中,Mozilla 软件工程师 Jan de Mooij 称:

几乎所有 JIT(包括 Firefox 目前使用的)都会使用 RWX(读 - 写 - 执行)权限为代码分配内存页面。JIT 通常需要修补代码(例如用于内联缓存(Inline cache)),如果内存可写,就能在不影响性能的情况下做到这一点。

然而 de Mooij 认为,这种做法会造成内存出错和安全隐患,RWX 页面的存在使得 Bug 更容易被利用。在 Firefox 46 中,JIT 代码页默认为不可写。

对于这个改动,de Mooij 也承认 W^X 并不“完美”,也不是“能解决任何安全问题的万全之策”,但依然坚信这个改动可以“让某些攻击更难实施…只有少量(相对简短的)代码路径可以访问 RW 代码,并且可读写的时间窗更短”。

为了改善稳定性和性能,Mozilla 还在 Firefox 46 中修复了多个与 WebRTC 有关的问题。

针对 Android 上的 Firefox 用户,Firefox 46 也提供了一些更新。例如通知信息中列出的后台打开的标签页现在已经可以显示标签页的URL,自动补全功能可补全默认域名,并且Firefox 现在可以在运行时申请权限。Firefox 46 取消了对Android for Honeycomb 的支持,并已停止支持Firefox Sync 1.1,开始推荐用户使用火狐账号(Firefox Accounts)。

针对Linux/GNU 用户,Firefox 46 提供了大家期待已久的针对GNOME 和其他桌面环境的GTK3 集成。

Firefox 46 还为开发者提供了一个名为 Dominators 的内存工具新视图。

Dominators 树“有助于帮您理解自己网站中为不同对象分配的‘保留大小’”,可显示保留内存最多的节点。

借此可以了解“节点内存保留大小的字节数或总占比”,“节点 Shallow 大小的字节数或总占比”,以及“节点的名称和内存地址”。

在 Firefox 47 中, Retaining Paths 窗格可以为单一节点显示 5 个最短保留路径(Retaining path),这样就可以看到阻止特定节点被垃圾回收的所有节点。开发者可以通过保留路径了解哪些对象保留了对已泄漏对象的引用。

Firefox 46 的完整改进清单可参阅发布说明

Mozilla 欢迎新人加入 Firefox 项目,InfoQ 读者可以通过多种方式为 Firefox 做贡献。各种可行方式的完整列表已发布在 Mozilla 开发者网络,此外 Mozilla 还提供了一系列参与方法指南。

作者:James Chesters
阅读英文原文 Firefox 46 Tackles Security Issues, Improves Performance


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-02 19:007858
用户头像

发布了 283 篇内容, 共 116.8 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

谈谈干前端三年的几点感受

虎妞先生

前端 成长 代码人生

前端包管理工具 npm yarn cnpm npx

虎妞先生

前端 包管理工具 #面试

海外多语言数字货币交易app系统开发搭建

开发微hkkf5566

【SOP】新扩容节点与集群版本不一致处理

TiDB 社区干货传送门

实践案例 版本升级 管理与运维 故障排查/诊断 扩/缩容

云安全之浅谈密钥泄露

HummerCloud

云安全 密钥

辞旧岁立新年 | 展望前端工程师的2023

字节跳动终端技术

云原生 前端 前端工程师

Apipost如何快速生成并分享API实时文档

popo223344

后端

MASA Stack 1.0 发布会讲稿——实践篇

MASA技术团队

.net MASA MAUI MASA Stack

云数据库 TiDB 试用实践——部署&运维

TiDB 社区干货传送门

版本测评

【2.3-2.10】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

2023最好用的10个开发者工具!每一个都让你效率翻倍

popo223344

工具 测试 后端

微信小程序底层框架实现原理|万字长文

虎妞先生

微信小程序 前端 原理 架构、

大型集团企业数据治理实践,推进全域数据资产体系建设 | 数字化标杆

袋鼠云数栈

java核心技术-多线程基础

蓦然

Spring Java

七年的开源商业化探索,PingCAP 为什么选了这样一条路?

TiDB 社区干货传送门

数据库前沿趋势

TiKV RocksDB读写原理整理

TiDB 社区干货传送门

TiDB 底层架构 TiKV 底层架构

# 文盘Rust -- rust 连接云上数仓 starwift

TiDB 社区干货传送门

开发语言

PingCAP黄东旭:Serverless是数据库的未来形态

TiDB 社区干货传送门

数据库前沿趋势

C++到Python全搞定,教你如何为FastDeploy贡献代码

飞桨PaddlePaddle

c++ paddle 飞桨

神锁离线版和Bitwarden的自动填充:超级英雄 vs 被斗转星移的瞎鸟

神锁离线版

密码管理 密码管理器 密码安全 Bitwarden 神锁离线版

云数据库 TiDB 体验——部分故障问题与解决方法

TiDB 社区干货传送门

版本测评 新版本/特性解读 6.x 实践

br备份时排除某个库

TiDB 社区干货传送门

实践案例 备份 & 恢复

模型推理耗时降低98%!PaddleTS又双叒叕带来重磅升级!

飞桨PaddlePaddle

paddle

在线研讨会邀请 | 赋能“大”研发,助力“快”交付

龙智—DevSecOps解决方案

版本控制 线上研讨会 研讨会 数字资产管理

软件测试/测试开发 | App自动化之dom结构和元素定位方式(包含滑动列表定位)

测试人

软件测试 自动化测试 测试开发

云原生场景下,如何缓减容器隔离漏洞,监控内核关键路径?

OpenCloudOS

Linux 云原生 服务器

架构实战营第 10 期 - 模块六:拆分电商为微服务

kaizen

「架构实战营」

代码质量与安全 | 开发人员必备的安全编码实践指南

龙智—DevSecOps解决方案

代码安全 静态代码扫描

不常用但却常问的迭代器

虎妞先生

前端 ES6

迈铸半导体完成1500万Pre A+轮融资,用于实现规模化量产

硬科技星球

云数据库 TiDB试用

TiDB 社区干货传送门

Firefox 46解决安全问题,改善性能_JavaScript_James Chesters_InfoQ精选文章