NoScript 是一個為 Mozilla FirefoxMozilla Application Suite網頁瀏覽器 (諸如FlockSeaMonkey等) 所開發的自由的擴充功能(Add-ons)。NoScript 以白名單選擇性執行 JavaScriptJavaFlashSliverlight 以及其它外掛程式和指令碼內容。[2]

NoScript
開發者Giorgio Maone
目前版本
  • 12.0.8(2024年12月2日;穩定版本)[1]
編輯維基數據連結
原始碼庫 編輯維基數據連結
作業系統跨平台
語言43種語言
類型Mozilla擴充功能
許可協定GPL
網站noscript.net

特點

安全和使用方法

在安裝之後,JavaScript、Java、Flash、Sliverlight和其它可執行內容都會被Firefox預設阻止。用戶可以手動允許這些內容。[3] NoScript會在Firefox中佔據一個工具列圖示或是一個狀態列圖示,並顯示正在瀏覽的頁面上每個站點的內容被阻止或允許的情況,同時也可以修改之前阻止或允許的內容。

站點匹配和白名單

對於每個頁面,可以選擇允許特定的地址,特定的域名或是根域名並執行它的內容。同時,允許一個域名之後(例如, mozilla.org),它的所有二級域名都會被預設允許(例如 www.mozilla.org, addons.mozilla.org 等等)而且與協定無關(例如HTTPHTTPS)。而允許一個地址之後(協定:主機 例如www.mozilla.org),它的所有子目錄都會被允許 (例如www.mozilla.org/firefoxwww.mozilla.org/thunderbird),此時它的根域名和以及其它二級域名不會被允許。因此,mozilla.org和addons.mozilla.org就不會被自動允許。[4]

黑名單

頁面也可以在NoScript中被列入黑名單。把一個頁面列入黑名單不僅會阻止執行指令碼內容,同時還會去掉手動執行這些內容的選項。[5]即使安全設置低於預設值,NoScript還是可以阻擋一些網頁攻擊,例如DNS重新綁定攻擊[6]

反XSS防護

2007年4月11日,NoScript 1.1.4.7版公開發布[7],新增了一個客戶端的保護,針對類型0和類型1的XSS攻擊。一旦一個頁面試圖將HTML或是JavaScript代碼插入另一個頁面,NoScript就會過濾掉有害請求。[8]

強制HTTPS轉換

2008年9月15日,NoScript 1.8.1版公開發布[9],使得用戶可以強制某些網站必須通過https訪問,增加安全性。此外NoScript也可以強制https網站把cookies加密來阻止cookies劫持。[10]
2009年9月23日,NoScript 1.9.8.9版增加了對HSTS的支援。[11]這一功能使得用戶在訪問支援的網站(例如,PayPal)的時候自動只通過HTTPS訪問,以防止中間人攻擊[12]

預設阻止一切

NoScript的預設行為是阻止所有不在白名單中的指令碼。這可能使大量依賴於JavaScript技術,例如AJAX的頁面無法正常工作。不熟悉的用戶也許會覺得相比起增加的安全保護而付出的麻煩不值得。[13]

但同時NoScript也支援一個可選的黑名單模式:用戶可以選擇全域啟用JavaScript然後禁止他們不信任的站點。即便如此組態,NoScript仍然能在很大程度上增強安全性,由於仍然具有XSSCSRF點擊劫持等防護功能。

內建的白名單

截至2009年5月 (2009-05), NoScript的白名單預設包含了擴充功能作者的部分域名,一些Google的域名(包括一個必要的用於顯示Google Adsense廣告的域名),雅虎以及微軟,由於這些使用了AJAX的Web郵件服務可能是某些用戶唯一熟悉的使用郵件方式,如果不這樣做,這些用戶就會在安裝NoScript之後無意地把他們自己鎖住。這個白名單是可以修改的。 [14]

獎項

NoScript被PC World雜誌評為2006年百大最佳產品之一。[15]

評論

和Adblock Plus的爭端

2009年5月1日,Firefox擴充功能Adblock Plus的作者Wladimir Palant,宣佈一周之前的NoScript 1.9.2版開始妨礙Adblock Plus正常工作。NoScript會在未經Adblock Plus和用戶允許的情況下解析並顯示贊助商頁面。Palant說NoScript使用了代碼混淆來逃避十六進制代碼層面對這個修改的檢測。[16][17]幾乎同時,Mozilla因此次事件決定修改社區準則。[18]4月30日,NoScript升級到1.9.2.3,把傳說中的代碼混淆改為了一個用戶可見的特性,即NoScript在Adblock Plus的過濾規則中將自己的網站設置為白名單。Wladimir Palant指出這個過濾規則即便被用戶刪除也會在每次啟動的時候自動添加回去,不過這看起來似乎只是個無意的Bug,因為白名單同時也可以被永久禁止或是如NoScript FAQ所說,被用戶自己的過濾規則覆蓋。[19]幾小時之後,2009年5月2日,自動更新的NoScript 1.9.2.6版徹底移除了這一白名單,並在發行記錄中對沒有在用戶事先允許的情況下修改Adblock Plus功能的行為作出公開道歉。[20]2009年5月4日,在網誌上一篇長文中,NoScript的作者Giorgio Maone以個人身份對最初含糊的說法表達了歉意,認識到這是破壞了信任關係並對此表示後悔。他同時解釋NoScript添加的Adblock Plus白名單是對EasyList反常性「攻擊」的對抗,這些攻擊針對Manoe的網站,並幾乎破壞了頁面所有的動態功能,甚至是安裝NoScript軟件套件的連結。[21]

NoScript網站和Ghostery擴充功能的衝突

2009年5月1日[22]以及2009年5月3日[23]在討論NoScript對Adblock Plus的修改時,有人在NoScript支援討論區中指出NoScript官網上有一個CSS規則不停讓Ghostery這個Mozilla擴充功能彈出提示,表示網頁上有奇怪而隱蔽的"bug"。Ghostery也會提示用戶Manoe網站上Google Adsense的使用。Manoe在回應中宣稱他的CSS沒有做出這些,Ghostery的提示是由於其自身的技術問題,同時這些提示看起來很糟糕而且妨礙了網頁真實效果的展示。[24]在之後的聲明中Manoe又特別批評這些提示擋住了了捐款按鈕和使用許可的顯示[25][26]並且表示他的CSS沒有阻止Ghostery的正常工作。[27]

大多數人則認為Manoe的CSS檔案包含了足夠多的統計代碼,Ghostery的判斷並沒有錯。有人指出Ghostery在其原始狀態的提示並沒有擋住Manoe的捐款按鈕,並在幾秒鐘之後就消失了。另外,用戶們指出Manoe的一行樣式使得Ghostery無法提供一個網頁bug的資訊,並認為總體上來說這是Manoe自己的問題。但Manoe仍堅稱Ghostery顯示資訊的方式不合適和過度敏感而導致兩個擴充功能出現了矛盾。

這件事的討論擴充功能到了第三方站點,[28][29]有些人謊稱干擾了Ghostery工作的是NoScript擴充功能而不是Manoe的站點。Ghostery的作者David Cancel頁面存檔備份,存於互聯網檔案館)原先發表了一些過激言論但隨後修正了。[30]

2009年5月6日,在此事的激烈討論平息之後,Maone公開表示他改變了自己的觀點,為此他修改了自己站點的CSS。[26]Ghostery的提示框不再被隱藏而是向頁面中部輕微移動了一些,以免擋住捐款按鈕或是許可資訊。

參見

參考文獻

  1. ^ Release 12.0.8. 2024年12月2日 [2024年12月2日] (英語). 
  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. ^ Giorgio Maone. al_9x Was Right, My Router is Safe. Hackademix.net. 2010-08-01 [2010-08-02]. (原始內容存檔於2010-08-04). 
  7. ^ NoScript's first Anti-XSS release Mozilla Add-ons頁面存檔備份,存於互聯網檔案館Mozilla Add-ons
  8. ^ NoScript Features-Anti-XSS protection頁面存檔備份,存於互聯網檔案館NoScript.net
  9. ^ Force SSL HTTPS Connections In NoScript頁面存檔備份,存於互聯網檔案館NoScript.net
  10. ^ What can NoScript do against HTTPS cookie hijacking? 頁面存檔備份,存於互聯網檔案館NoScript.net
  11. ^ First public Strict Transport Security implementation. [2011-11-21]. (原始內容存檔於2019-10-18). 
  12. ^ Strict Transport Security in NoScript頁面存檔備份,存於互聯網檔案館Template:Work = Hackademix.net
  13. ^ Peter Smith. Top 10 Firefox extensions to avoid. Computerworld. International Data Group. 17 Apr 2007 [2 May 2009]. (原始內容存檔於2009年2月5日). 
  14. ^ Georgio Maone. Q: What websites are in the default whitelist and why?. The official NoScript FAQ. InformAction. [17 May 2009]. (原始內容存檔於2016-05-09). 
  15. ^ PC World Award頁面存檔備份,存於互聯網檔案館pcworld.com
  16. ^ Palant, Wladimir. Attention NoScript users. Adblock Plus and (a little) more. 科隆: Wladimir Palant. 2009-05-01 [2009-05-02]. (原始內容存檔於2012-02-18). 
  17. ^ mrd.js. [2010-04-25]. (原始內容存檔於2012-02-18). 
  18. ^ No Surprises. 2009-05-01 [2010-04-25]. (原始內容存檔於2010-04-20). 
  19. ^ 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.
  20. ^ NoScript 1.9.2.6 release notes page. 2009-05-02 [2010-04-25]. (原始內容存檔於2019-10-18). 
  21. ^ Maone, Giorgio. Dear Adblock Plus and NoScript Users, Dear Mozilla Community. Hackademix.net. 2009-05-04 [2009-05-18]. (原始內容存檔於2012-02-18). 
  22. ^ NoScript support forum頁面存檔備份,存於互聯網檔案館) "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3133, Guest (2009-05-01)
  23. ^ NoScript support forum頁面存檔備份,存於互聯網檔案館) "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3610, Curious Inquiry (2009-05-03)
  24. ^ NoScript support forum頁面存檔備份,存於互聯網檔案館) "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3133, Giorgio Maone (2009-05-01)
  25. ^ NoScript support forum頁面存檔備份,存於互聯網檔案館) "Re: Latest NoScript version (1.9.2) breaks Adblock Plus", comment #3704, Giorgio Maone (2009-05-04)
  26. ^ 26.0 26.1 NoScript support forum頁面存檔備份,存於互聯網檔案館) "Re: Additional steps to regain and retain user trust", comment #3935, Giorgio Maone (2009-05-06)
  27. ^ Ghostery News頁面存檔備份,存於互聯網檔案館) "Attention all NoScript users", comment by Giorgio Maone, (2009-05-05)
  28. ^ Twitter頁面存檔備份,存於互聯網檔案館) tweet by Mark Pilgrim (diveintomark) (2009-05-03)
  29. ^ yardley.ca頁面存檔備份,存於互聯網檔案館) "When blockers block the blockers", Greg Yardley (2009-05-04)
  30. ^ Ghostery News頁面存檔備份,存於互聯網檔案館) "Attention all NoScript users", David Cancel (2009-05-03)

外部連結