NoScript
NoScript 是一个为 Mozilla Firefox 和 Mozilla Application Suite网页浏览器 (诸如Flock、SeaMonkey等) 所开发的自由的扩展(Add-ons)。NoScript 以白名单选择性执行 JavaScript、Java、Flash、Sliverlight 以及其它插件和脚本内容。[1]
開發者 | Giorgio Maone |
---|---|
穩定版本 | 10.1.6.4(2018年1月29日[±] | )
源代码库 | |
操作系统 | 跨平台 |
语言 | 43種語言 |
类型 | Mozilla扩展 |
许可协议 | GPL |
网站 | noscript.net |
目錄 |
---|
起源與歷史 |
(分類) |
特点
安全和使用方法
在安装之后,JavaScript、Java、Flash、Sliverlight和其它可执行内容都会被Firefox默认阻止。用户可以手动允许这些内容。[2] NoScript会在Firefox中占据一个工具栏图标或是一个状态栏图标,并显示正在浏览的页面上每个站点的内容被阻止或允许的情况,同时也可以修改之前阻止或允许的内容。
站点匹配和白名单
对于每个页面,可以选择允许特定的地址,特定的域名或是根域名并执行它的内容。同时,允许一个域名之后(例如, mozilla.org),它的所有二级域名都会被默认允许(例如 www.mozilla.org, addons.mozilla.org 等等)而且与协议无关(例如HTTP和HTTPS)。而允许一个地址之后(协议:主机 例如 http://www.mozilla.org页面存档备份,存于 ),它的所有子目录都会被允许 (例如 http://www.mozilla.org/firefox页面存档备份,存于 和 http://www.mozilla.org/thunderbird页面存档备份,存于 ),此时它的根域名和以及其它二级域名不会被。因此,mozilla.org和addons.mozilla.org就不会被自动允许。[3]
黑名单
页面也可以在NoScript中被列入黑名单。把一个页面列入黑名单不仅会阻止执行脚本内容,同时还会去掉手动执行这些内容的选项。[4]即使安全設定低於預設值,NoScript還是可以阻擋一些網頁攻擊,例如DNS重新綁定攻擊[5]。
反XSS防护
2007年4月11日,NoScript 1.1.4.7版公开发布[6],新增了一个客户端的保护,针对类型0和类型1的XSS攻击。一旦一个页面试图将HTML或是JavaScript代码插入另一个页面,NoScript就会过滤掉有害请求。[7]
强制HTTPS转换
2008年9月15日,NoScript 1.8.1版公开发布[8],使得用户可以强制某些网站必须通过https访问,增加安全性。此外NoScript也可以强制https网站把cookies加密来阻止cookies劫持。[9]
2009年9月23日,NoScript 1.9.8.9版增加了对HSTS的支持。[10]这一功能使得用户在访问支持的网站(例如,PayPal)的时候自动只通过HTTPS访问,以防止中间人攻击。[11]
评论
和Adblock Plus的争端
2009年5月1日,Firefox扩展Adblock Plus的作者Wladimir Palant,宣布一周之前的NoScript 1.9.2版开始妨碍Adblock Plus正常工作。NoScript会在未经Adblock Plus和用户允许的情况下解析并显示赞助商页面。Palant说NoScript使用了代码混淆来逃避十六进制代码层面对这个修改的检测。[15][16]几乎同时,Mozilla因此次事件决定修改社区准则。[17]4月30日,NoScript升级到1.9.2.3,把传说中的代码混淆改为了一个用户可见的特性,即NoScript在Adblock Plus的过滤规则中将自己的网站设置为白名单。Wladimir Palant指出这个过滤规则即便被用户删除也会在每次启动的时候自动添加回去,不过这看起来似乎只是个无意的Bug,因为白名单同时也可以被永久禁止或是如NoScript FAQ所说,被用户自己的过滤规则覆盖。[18]几小时之后,2009年5月2日,自动更新的NoScript 1.9.2.6版彻底移除了这一白名单,并在发行记录中对没有在用户事先允许的情况下修改Adblock Plus功能的行为作出公开道歉。[19]2009年5月4日,在博客上一篇长文中,NoScript的作者Giorgio Maone以个人身份对最初含糊的说法表达了歉意,认识到这是破坏了信任关系并对此表示后悔。他同时解释NoScript添加的Adblock Plus白名单是对EasyList反常性“攻击”的对抗,这些攻击针对Manoe的网站,并几乎破坏了页面所有的动态功能,甚至是安装NoScript软件包的链接。[20]
NoScript网站和Ghostery扩展的冲突
2009年5月1日[21]以及2009年5月3日[22]在讨论NoScript对Adblock Plus的修改时,有人在NoScript支持论坛中指出NoScript官网上有一个CSS规则不停让Ghostery这个Mozilla扩展弹出提示,表示网页上有奇怪而隐蔽的"bug"。Ghostery也会提示用户Manoe网站上Google Adsense的使用。Manoe在回应中宣称他的CSS没有做出这些,Ghostery的提示是由于其自身的技术问题,同时这些提示看起来很糟糕而且妨碍了网页真实效果的展示。[23]在之后的声明中Manoe又特别批评这些提示挡住了了捐款按钮和使用许可的显示[24][25]并且表示他的CSS没有阻止Ghostery的正常工作。[26]
大多数人则认为Manoe的CSS文件包含了足够多的统计代码,Ghostery的判断并没有错。有人指出Ghostery在其原始状态的提示并没有挡住Manoe的捐款按钮,并在几秒钟之后就消失了。另外,用户们指出Manoe的一行样式使得Ghostery无法提供一个网页bug的信息,并认为总体上来说这是Manoe自己的问题。但Manoe仍坚称Ghostery显示信息的方式不合适和过度敏感而导致两个扩展出现了矛盾。
这件事的讨论扩展到了第三方站点,[27][28]有些人谎称干扰了Ghostery工作的是NoScript扩展而不是Manoe的站点。Ghostery的作者David Cancel页面存档备份,存于原先发表了一些过激言论但随后修正了。[29]
2009年5月6日,在此事的激烈讨论平息之后,Maone公开表示他改变了自己的观点,为此他修改了自己站点的CSS。[25]Ghostery的提示框不再被隐藏而是向页面中部轻微移动了一些,以免挡住捐款按钮或是许可信息。
参见
- GNU LibreJS
- JavaScript陷阱
参考文献
- NoScript What is it? 页面存档备份,存于 NoScript.net
- NoScript Features-Usable security 页面存档备份,存于 NoScript.net
- NoScript Features-Site matching 页面存档备份,存于 NoScript.net
- NoScript Features-Untrusted blacklist 页面存档备份,存于 NoScript.net
- Giorgio Maone. . Hackademix.net. 2010-08-01 [2010-08-02]. (原始内容存档于2010-08-04).
- NoScript's first Anti-XSS release Mozilla Add-ons 页面存档备份,存于 Mozilla Add-ons
- NoScript Features-Anti-XSS protection 页面存档备份,存于 NoScript.net
- Force SSL HTTPS Connections In NoScript 页面存档备份,存于 NoScript.net
- What can NoScript do against HTTPS cookie hijacking? 页面存档备份,存于 NoScript.net
- . [2011-11-21]. (原始内容存档于2019-10-18).
- Strict Transport Security in NoScript Archived 2012-07-04 at WebCiteTemplate:Work = Hackademix.net
- Peter Smith. . Computerworld. International Data Group. 17 Apr 2007 [2 May 2009]. (原始内容存档于2009年2月5日).
- Georgio Maone. . The official NoScript FAQ. InformAction. [17 May 2009]. (原始内容存档于2016-05-09).
- PC World Award 页面存档备份,存于 pcworld.com
- Palant, Wladimir. . Adblock Plus and (a little) more. 科隆: Wladimir Palant. 2009-05-01 [2009-05-02]. (原始内容存档于2012-02-18).
- . [2010-04-25]. (原始内容存档于2012-02-18).
- . 2009-05-01 [2010-04-25]. (原始内容存档于2010-04-20).
- Some hours later, on May 2, 2009, a further automatic NoScript update (version 1.9.2.6) completely removed the Adblock Plus whitelist, and public apologies were given on the release notes page for having modified Adblock Plus' behavior without asking users' consent in advance.
- . 2009-05-02 [2010-04-25]. (原始内容存档于2019-10-18).
- Maone, Giorgio. . Hackademix.net. 2009-05-04 [2009-05-18]. (原始内容存档于2012-02-18).
- NoScript support forum 页面存档备份,存于 "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3133, Guest (2009-05-01)
- NoScript support forum 页面存档备份,存于 "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3610, Curious Inquiry (2009-05-03)
- NoScript support forum 页面存档备份,存于 "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3133, Giorgio Maone (2009-05-01)
- NoScript support forum 页面存档备份,存于 "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3704, Giorgio Maone (2009-05-04)
- NoScript support forum 页面存档备份,存于 "Re: Additional steps to regain and retain user trust", comment #3935, Giorgio Maone (2009-05-06)
- Ghostery News 页面存档备份,存于 "Attention all NoScript users", comment by Giorgio Maone, (2009-05-05)
- Twitter 页面存档备份,存于 tweet by Mark Pilgrim (diveintomark) (2009-05-03)
- yardley.ca 页面存档备份,存于 "When blockers block the blockers", Greg Yardley (2009-05-04)
- Ghostery News 页面存档备份,存于 "Attention all NoScript users", David Cancel (2009-05-03)