跳转到内容

NoScript

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由Liflon留言 | 贡献2011年6月12日 (日) 16:54编辑。这可能和当前版本存在着巨大的差异。

NoScript
File:NoScript Logo.png
開發者Giorgio Maone
当前版本
  • 12.6(2025年4月28日;穩定版本)[1]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
操作系统跨平台
语言43種語言
类型Mozilla扩展
许可协议GPL
网站noscript.net

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

特点

安全和使用方法

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

站点匹配和白名单

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

黑名单

页面也可以在NoScript中被列入黑名单。把一个页面列入黑名单不仅会阻止执行脚本内容,同时还会去除允许执行这些内容的选项。[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版增加了对STS的支持。[10]这一功能使得用户在访问支持的网站(例如,PayPal)的时候自动只通过HTTPS访问,使得中间人攻击变得非常困难。[11]

奖项

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

评论

默认阻止一切

NoScript的默认行为是阻止所有不在白名单中的脚本。这可能使大量依赖于JavaScript技术,例如AJAX的页面无法正常工作。不熟悉的用户也许会觉得相比起增加的安全保护,这样的行为威力太大,没必要甚至令人厌烦。[13]但同时NoScript也支持一个可选的黑名单模式:用户可以选择全局启用JavaScript然后禁止他们不信任的站点。即便如此配置,NoScript仍然能在很大程度上增强安全性,由于XSS, CSRFClickjacking的防护仍然可以起作用。

内置的白名单

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

和Adblock Plus的争端

2009年5月1日,Wladimir Palant, 另一个知名Firefox扩展Adblock Plus的作者,宣布一周之前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设置的白名单,并在发行记录中对没有在用户事先允许的情况下修改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的提示框不再被隐藏而是向页面中部轻微移动了一些,以免挡住捐款按钮或是许可信息。

参考文献

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

外部链接