APP下载
报价宝  ›  综合  › 

Firefox部署程式码注射攻击保护

报价宝 来源:baojiabao.com 发布时间:2019-10-16 12:50:00 09月21日更新
报价宝综合消息Firefox部署程式码注射攻击保护

Mozilla表示,Firefox不仅描绘网络上的网页,也附带许多内建的页面,通常称为about:pages。由于about:pages也可能遭受程式码注入攻击。于是,Mozilla重新编写Firefox所有的行内事件处理器,并将其中的JavaScript程式码移到45种about: pages的打包档案中,以部署内容安全政策,确保被注入的JavaScript无法执行。

Mozilla安全团队于本周揭露,他们已借由移除Firefox程式码中的行内脚本(inline scripts)与eval()及类似的各种函数,以防范程式码注射攻击。

所谓的行内脚本,是指被嵌入在HTML文件中,而非自外部档案载入的脚本程式。Mozilla内容安全技术负责人Christoph Kerschbaumer解释,Firefox不仅描绘网络上的网页,也附带许多内建的页面,通常称为about:pages,这类的页面可用来揭露浏览器的内部状态,最明显的about:config提供了一个API,可用来检查与更新设定及偏好,让Firefox用户得以根据特定需求来打造Firefox实例。

由于about:pages也是透过HTML及JavaScript来实现,因此它们与一般的网页有着同样的安全模型,也无法免疫于程式码注入攻击。假设骇客能够把程式码注入about:pages中,骇客也许也能执行所注入的程式码,意谓著骇客将可代表使用者执行任何行动。

于是,Mozilla重新编写Firefox所有的行内事件处理器,并将所有的行内JavaScript程式码移到45种about: pages的打包档案中,以让Mozilla能够部署强大的内容安全政策,确保被注入的JavaScript无法执行。

如此一来,JavaScript程式码只能在透过内部的chrome: protocol时,自打包的资源中载入才能执行。封锁了about: pages中任何的行内脚本,等于限制了执行任意程式码的攻击表面,也替对抗程式码注入攻击提供了第一道防线。

至于JavaScript函数eval(),或是其它类似的new Function、setTimeout()/setInterval()也都是既强大又危险的函数,它能够在与函数一致的安全脉络下,解析与执行任意字串,它允许执行程式码在运行时产生,或是存放在诸如DOM的非脚本区域,然而,eval()带来了重要的程式码注入攻击表面,促使Mozilla决定禁用它。

因此Mozilla改写了系统特权脉络及Firefox程式库的父程序中,所有使用eval()或其它类似函数的段落,并加入了断言,以禁止在系统权限的脚本脉络中,使用相关函数。

目前Mozilla仍会在极少数、自程式库之外调用eval()的状态下放行该函数,但未来将继续密切观察与审核未知的eval() 实例,以强化Firefox的安全性。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 手机价格 笔记本价格 电视机价格 华为手机价格 降噪耳机价格