NoScript

维基百科,自由的百科全书
跳转至: 导航搜索
NoScript
開發者 Giorgio Maone
穩定版本 2.6.8.16 (2014年2月27日;48天前 (2014-02-27)) [±]
操作系统 跨平台
语言 43種語言
类型 Mozilla扩展
许可协议 GPL
網站 noscript.net

NoScript 是一个免费和开源的,为 Mozilla FirefoxMozilla Application Suite网页浏览器 (诸如FlockSeaMonkey等) 所开发的扩展(Add-ons)。NoScript 以白名单选择性执行 JavaScriptJavaFlashSliverlight 以及其它插件和脚本内容。[1]

特点[编辑]

安全和使用方法[编辑]

在安装之后,JavaScript、Java、Flash、Sliverlight和其它可执行内容都会被Firefox默认阻止。用户可以手动允许这些内容。[2] NoScript会在Firefox中占据一个工具栏图标或是一个状态栏图标,并显示正在浏览的页面上每个站点的内容被阻止或允许的情况,同时也可以修改之前阻止或允许的内容。

站点匹配和白名单[编辑]

对于每个页面,可以选择允许特定的地址,特定的域名或是根域名并执行它的内容。同时,允许一个域名之后(例如, mozilla.org),它的所有二级域名都会被默认允许(例如 www.mozilla.org, addons.mozilla.org 等等)而且与协议无关(例如HTTPHTTPS)。而允许一个地址之后(协议:主机 例如 http://www.mozilla.org ),它的所有子目录都会被允许 (例如 http://www.mozilla.org/firefoxhttp://www.mozilla.org/thunderbird ),此时它的根域名和以及其它二级域名不会被。因此,mozilla.org和addons.mozilla.org就不会被自动允许。[3]

黑名单[编辑]

页面也可以在NoScript中被列入黑名单。把一个页面列入黑名单不仅会阻止执行脚本内容,同时还会去掉手动执行这些内容的选项。[4]

反XSS防护[编辑]

2007年4月11日,NoScript 1.1.4.7版公开发布[5],新增了一个客户端的保护,针对类型0和类型1的XSS攻击。一旦一个页面试图将HTML或是JavaScript代码插入另一个页面,NoScript就会过滤掉有害请求。[6]

强制HTTPS转换[编辑]

2008年9月15日,NoScript 1.8.1版公开发布[7],使得用户可以强制某些网站必须通过https访问,增加安全性。此外NoScript也可以强制https网站把cookies加密来阻止cookies劫持。[8]
2009年9月23日,NoScript 1.9.8.9版增加了对HSTS的支持。[9]这一功能使得用户在访问支持的网站(例如,PayPal)的时候自动只通过HTTPS访问,以防止中间人攻击[10]

奖项[编辑]

NoScript被PC World杂志评为2006年百大最佳产品之一。[11]

评论[编辑]

默认阻止一切[编辑]

NoScript的默认行为是阻止所有不在白名单中的脚本。这可能使大量依赖于JavaScript技术,例如AJAX的页面无法正常工作。不熟悉的用户也许会觉得相比起增加的安全保护而付出的麻烦不值得。[12]

但同时NoScript也支持一个可选的黑名单模式:用户可以选择全局启用JavaScript然后禁止他们不信任的站点。即便如此配置,NoScript仍然能在很大程度上增强安全性,由于仍然具有XSSCSRF点击劫持等防护功能。

内置的白名单[编辑]

截至2009年5月  (2009-05), NoScript的白名单默认包含了扩展作者的部分域名,一些Google的域名(包括一个必要的用于显示Google Adsense广告的域名),雅虎以及微软,由于这些使用了AJAX的Web邮件服务可能是某些用户唯一熟悉的使用邮件方式,如果不这样做,这些用户就会在安装NoScript之后无意地把他们自己锁住。这个白名单是可以修改的。 [13]

和Adblock Plus的争端[编辑]

2009年5月1日,Wladimir Palant, 另一个知名Firefox扩展Adblock Plus的作者,宣布一周之前的NoScript 1.9.2版开始妨碍Adblock Plus的正常工作。NoScript会在未经Adblock Plus和用户允许的情况下解析并显示赞助商页面。Palant说NoScript使用了代码混淆来逃避十六进制代码层面对这个修改的检测。[14][15]几乎同时,由于此次事件Mozilla决定修改社区准则。[16]4月30日,NoScript升级到1.9.2.3,把传说中的代码混淆改为了一个用户可见的特性,即NoScript在Adblock Plus的过滤规则中将自己的网站设置为了白名单。Wladimir Palant指出这个过滤规则集即便被用户删除也会在每次启动的时候自动添加回去,不过这看起来似乎只是个无意的Bug,因为白名单同时也可以被永久禁止或是如NoScript FAQ所说,被用户自己的过滤规则覆盖。[17]几小时之后,2009年5月2日,自动更新的NoScript 1.9.2.6版彻底移除了这一白名单,并在发行记录中对没有在用户事先允许的情况下修改Adblock Plus功能的行为作出公开道歉。[18]2009年5月4日,在博客上一篇长文中,NoScript的作者Giorgio Maone以个人身份对最初含糊的说法表达了歉意,认识到这是破坏了信任关系并对此表示后悔。他同时解释NoScript添加的Adblock Plus白名单是对EasyList反常性 “攻击” 的对抗,这些攻击针对Manoe的网站,并几乎破坏了页面所有的动态功能,甚至是安装NoScript软件包的链接。[19]

NoScript网站和Ghostery扩展的冲突[编辑]

2009年5月1日[20]以及2009年5月3日[21]在讨论NoScript对Adblock Plus的修改时,有人在NoScript支持论坛中指出NoScript官网上有一个CSS规则不停让Ghostery这个Mozilla扩展弹出提示,表示网页上有奇怪而隐蔽的"bug"。Ghostery也会提示用户Manoe网站上Google Adsense的使用。Manoe在回应中宣称他的CSS没有做出这些,Ghostery的提示是由于其自身的技术问题,同时这些提示看起来很糟糕而且妨碍了网页真实效果的展示。[22]在之后的声明中Manoe又特别批评这些提示挡住了了捐款按钮和使用许可的显示[23][24]并且表示他的CSS没有阻止Ghostery的正常工作。[25]

大多数人则认为Manoe的CSS文件包含了足够多的统计代码,Ghostery的判断并没有错。有人指出Ghostery在其原始状态的提示并没有挡住Manoe的捐款按钮,并在几秒钟之后就消失了。另外,用户们指出Manoe的一行样式使得Ghostery无法提供一个网页bug的信息,并认为总体上来说这是Manoe自己的问题。但Manoe仍坚称Ghostery显示信息的方式不合适和过度敏感而导致两个扩展出现了矛盾。

这件事的讨论扩展到了第三方站点,[26][27]有些人谎称干扰了Ghostery工作的是NoScript扩展而不是Manoe的站点。Ghostery的作者David Cancel原先发表了一些过激言论但随后修正了。[28]

2009年5月6日,在此事的激烈讨论平息之后,Maone公开表示他改变了自己的观点,为此他修改了自己站点的CSS。[24]Ghostery的提示框不再被隐藏而是向页面中部轻微移动了一些,以免挡住捐款按钮或是许可信息。

参考文献[编辑]

  1. ^ NoScript What is it? NoScript.net
  2. ^ NoScript Features-Usable security NoScript.net
  3. ^ NoScript Features-Site matching NoScript.net
  4. ^ NoScript Features-Untrusted blacklist NoScript.net
  5. ^ NoScript's first Anti-XSS release Mozilla Add-ons Mozilla Add-ons
  6. ^ NoScript Features-Anti-XSS protection NoScript.net
  7. ^ Force SSL HTTPS Connections In NoScript NoScript.net
  8. ^ What can NoScript do against HTTPS cookie hijacking? NoScript.net
  9. ^ First public Strict Transport Security implementation
  10. ^ Strict Transport Security in NoScriptTemplate:Work = Hackademix.net
  11. ^ PC World Award pcworld.com
  12. ^ Peter Smith. Top 10 Firefox extensions to avoid. Computerworld. International Data Group. 17 Apr 2007 [2 May 2009]. 
  13. ^ Georgio Maone. Q: What websites are in the default whitelist and why?. The official NoScript FAQ. InformAction. [17 May 2009]. 
  14. ^ Palant, Wladimir. Attention NoScript users. Adblock Plus and (a little) more. 科隆: Wladimir Palant. 2009-05-01 [2009-05-02]. 
  15. ^ mrd.js. 
  16. ^ No Surprises. 2009-05-01. 
  17. ^ 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.
  18. ^ NoScript 1.9.2.6 release notes page. 2009-05-02. 
  19. ^ Maone, Giorgio. Dear Adblock Plus and NoScript Users, Dear Mozilla Community. Hackademix.net. 2009-05-04 [2009-05-18]. 
  20. ^ NoScript support forum "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3133, Guest (2009-05-01)
  21. ^ NoScript support forum "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3610, Curious Inquiry (2009-05-03)
  22. ^ NoScript support forum "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3133, Giorgio Maone (2009-05-01)
  23. ^ NoScript support forum "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3704, Giorgio Maone (2009-05-04)
  24. ^ 24.0 24.1 NoScript support forum "Re: Additional steps to regain and retain user trust", comment #3935, Giorgio Maone (2009-05-06)
  25. ^ Ghostery News "Attention all NoScript users", comment by Giorgio Maone, (2009-05-05)
  26. ^ Twitter tweet by Mark Pilgrim (diveintomark) (2009-05-03)
  27. ^ yardley.ca "When blockers block the blockers", Greg Yardley (2009-05-04)
  28. ^ Ghostery News "Attention all NoScript users", David Cancel (2009-05-03)

外部链接[编辑]