套件可以擴充 Firefox 的核心功能,讓使用者能夠修改或個人化他們的 Web 體驗。對開發者而言,一個健康的、基於信任的套件生態系是必須的;對使用者而言,有了這樣的生態系才能更安心地讓 Firefox 成為他們自己想要的樣子。基於這些理由,Mozilla 要求所有的套件以可接受的作法遵守下列政策。以下內容並非旨在作為法律建議,也不打算成為您的套件隱私政策的完整的條目。

無論是透過什麼方式發佈,所有的套件都應該受到這些政策所規範。不遵從這些規範的套件可能會被 Mozilla 退回、下架。

不要有預期之外的功能

適當的驚喜在許多情況下是允許的,但威脅到使用者的安全、隱私和控制權時,這些預料之外的體驗就不受到歡迎。在提交套件時,盡可能地資訊透明非常重要。使用者應該要能夠輕易地辨識出你的套件功能是什麼,並在安裝之後不會出現預期外的使用者體驗。

預期外的功能

「預期外」指的是那些和套件主要功能無關、從套件名稱或描述也都無從預期的功能。

下列這幾類功能即是所謂的有預期外行為的套件:

  • 潛在地使用者隱私或安全問題(像是傳送資料到第三方服務)
  • 變更預設設定,像是新分頁、首頁或搜尋引擎
  • 對瀏覽器或網頁內容作非預期的變動
  • 包含套件核心功能之外的其他功能

上述之預期外功能必須要符合下面所列的全部要求:

  • 套件描述必須清楚地表達套件會產生哪些更動
  • 所有的改變都必須是「opt-in(可選使用的)」,也就是說,使用者必須要主動地同意這些不預期更動,而非讓這些設定成為預設。透過權限系統要求使用者的更動不需要額外的 opt-in。
  • opt-in 的介面必須清楚地聲明套件要求了哪些改動

內容

使用了 Mozilla 商標的套件必須遵從 Mozilla 商標規範。如果套件在他的名字中使用了 「Firefox」,那麼套件的名稱就必須讓人預期是 「適用於 Firefox 的 <擴充套件名稱>」 。

此外,在 addons.mozilla.org (AMO) 中展示的套件必須遵從下列政策:

  • 所有提交至 AMO 的套件都必須受 Mozilla 的 Conditions of Use 規範
  • 如果有任何需要付款的功能,則套件必須揭露這件事
  • 任何的在 Mozilla 網站上的套件或是套件內容都必須遵守美國的法律
  • 對於任何套件所做的所有事情、所搜集的任何資訊,套件展示頁都應該要有易讀的描述。請參照我們的最佳實踐:creating an appealing listing
  • 僅內部使用或私人用途的套件、或是為了測試而發布的套件不應該出現在 AMO。這類套件應該要為了個人用途發布而上傳
  • 如果套件是另外一個套件的副本 (fork),套件名稱應該要清楚地區分他和原套件,並提供功能上/程式上重大的不同之處

提交準則

套件必須僅照描述地運作,並應該要提供好的使用者體驗。基於套件的描述,使用者必須要在不具備專業知識的情況下,能夠理解並使用套件的功能。要知道如何能替套件建立好的使用者體驗可以參考 這份文件

在審查的過程中,套件會經過基本的測試以及程式碼審查。為了讓功能更容易被測試,套件作者必須要提供測試資訊。若需要才能使用套件的話,也要提供測試用的資格。

對於審查中提出的問題(issue)必須盡力處理。如果被要求修正,新版本就不該包含任何無關的改動,因為這會使審查流程過於複雜,甚至導致套件被拒絕、下架。

提交原始碼

套件可能被轉譯、混淆化、最小化,或是變成機器所產生的程式碼,但 Mozilla 需要審查人類可讀的原始碼。在審查的過程中,作者應該提供這些相關資訊以及重現最終原始碼的相關教學給 Mozilla。

提供的原始碼必須被管理員審查,且不會再以任何方式被再次發佈。程式碼將只用於審查套件的這個目的。若未提交此資訊將會使套件被退回、下架。

請閱讀我們的 原始碼提交準則 以避免不預期的退回、下架。

開發實作

一般來說,開發者可以自由地以他們選擇的方式維護他們的套件。然而,為了讓資料安全性好維護,並讓審查有效率,我們有幾項技術要求需要所有套件好好遵守。尤其是,有潛在危險的 API 只有幾個明顯安全的方式能使用,且套件中的程式碼若無法確定是安全且正確的,就可能會需要重構。

雖然提交的套件中,任何程式碼、方法或實作均需受到審查,但下列的幾個要求亦十分重要:

  • 套件必須只要求功能所需的權限
  • 套件必須自我封裝 (self-contained),不載入、不執行遠端程式碼
  • 套件必須使用加密的頻道來傳送敏感的使用者資料
  • 套件應該避免重複或不必要的檔案
  • 套件程式碼必須要以能審查、能理解的方式撰寫。若有無法審查的部分,審核者可能會要求你重構之
  • 套件必須對 Firefox 的效能和穩定無負面影響
  • 套件中只能包含已釋出版本的第三方函式庫/框架。對這些函式庫/框架進行更改是不被允許的

請閱讀 third party library guidelines 以避免不必要的拒絕、下架。

資料揭露、收集與管理

在 AMO 的隱私權政策欄位中,你必須要揭露套件是如何收集、使用、儲存與分享使用者的資料。Mozilla 預期在任何可能的情況下,套件都必須要限制資料搜集,以便符合 Mozilla 的 輕巧資料實作 及 Mozilla 的 資料隱私原則,且只僅將數據用於最初收集的目的。

使用者資料包含套件搜集的所有資訊,無論是何種樣態。它可以是使用者主動提供的個人資料(像是名字或是 Email)、技術用資料(像是作業系統、編譯 ID、版本號、錯誤回報、啟用狀態、更新狀態)以及互動或活動資料(套件活動資料、探訪過的 URL、主控台的記錄),包含與 Firefox 的任何互動。

套件的隱私權政策必須是完整的政策文字;不能是連到外部隱私權政策的連結。此外,隱私權政策必須:

  • 針對並專屬於該套件
  • 清楚地敘述資料搜集的用途
  • 具體且確切地列出要收集的資料
  • 指出套件的特定隱私項目

這個資訊的摘要必須要在套件頁的描述中提及。最後,你以及你的套件亦須遵從所有該遵守資料隱私相關法律,以及任何其他可能可以適用於你的套件的法律。

使用者互動與技術資料

  • 必須提供使用者一個清楚的方式以便控制資料收集。控制設定的元件必須在安裝套件的過程中被顯示
  • 套件只能搜集套件使用狀況、效能表現等相關資訊
  • 收集額外資訊(像是套件基礎功能毋需的資料)是不被允許的

Cookies

  • 如果你的套件使用 cookies,這也必須在套件隱私權政策中被揭露
  • 套件隱私權政策必須清楚地表達 cookie(s) 的使用以及其目的。十分建議揭露使用 cookies 的類型
  • 使用者必須有拒絕儲存及存取 cookies 的機會,且必須被告知如此作為的後果(像是,沒有該功能的 cookie,套件就可能無法作用)
  • 明顯不被套件功能所需而使用的 cookie 是不被允許的

個人資料

  • 如果你搜集任何個人資訊,使用者必須要明確同意(像是使用者需明確地進行 opt-on)使用者必須清楚地知道他們對於個人資料搜集提出肯定答覆
  • 蒐集額外個人資訊(像是任何明顯不被套件基礎功能所需的資料)是不被允許的
  • 任何這類的資料傳輸都必須使用安全的、有加密的連線

額外的隱私協議

  • 對網站或其他程式洩漏本機或使用者的敏感資訊是不被允許的(像是使用 native messaging 功能)
  • 若套件使用 native messaging 功能,隱私權政策必須清楚地揭露哪些資訊會被原生應用程式交換。和原生應用程式進行的資料交換必須符合我們上面提到的「不要有預期外功能」的政策
  • 在進行安全及隱私敏感的操作時——像是傳送密碼或存取憑證——必須使用 HTTPS
  • 使用隱私瀏覽階段所產生的瀏覽資料不能被儲存
  • 在隱私瀏覽階段中,身份識別資訊必須不被洩露給網站內容

安全漏洞

由於套件執行的環境比一般網頁擁有較高的權限,因此在安全上顯露了一些非常嚴肅的事項須考慮。它們不僅可以在套件本身中出現安全漏洞,還可能在瀏覽器中、在網頁中出現漏洞。最令人痛苦的是,甚至可能可以在運行瀏覽器的整個系統出現漏洞。

因此,我們十分重視安全政策,並將他放諸於所有套件,無論是否託管於 AMO 之上。我們預期所有的套件都是安全的,且無論自身資料或使用者資料,他們都能管理得很好。此外,他們也須安全地管理所有和網路、瀏覽器以及作業系統之間的互動。

盈利

  • 盈利機制必須要遵從資料揭露、收集及管理區塊的政策。需特別注意的是,在安裝或更新的過程中,套件必須要有清楚的使用者控制機制(給個人資料的 opt-in)為了營利而收集額外資料是不被允許的。
  • 插入廣告到網頁中的套件必須清楚地表明插入的內容是源自於該套件。
  • 包含任何加密貨幣的礦工或相似的功能的套件是不被允許的。
  • 修改網頁內容或重新導向以便引入推廣標籤是不被允許的。相反地,在明確標識為屬於套件的使用者界面元素中,使用聯盟行銷是可以被接受的。

接受及封鎖

不符合這些政策的套件,Mozilla 可能會拒絕並下架有關版本,甚至封鎖整個套件。這個決策會根據他們不遵守的程度來進行調整。

一般來說,Mozilla 會嘗試聯絡套件開發者,並在執行封鎖之前提供一個合理的時間區間以便修正問題。若套件被認為是惡意軟體,或開發者無法聯絡、無回應,或是重複違反,則封鎖會被立刻執行。

Mozilla 保留封鎖或刪除開發者在 addons.mozilla.org 上帳號的相關權利,避免該服務被進一步使用。

若想了解拒絕、下架以及封鎖對使用者有何影響的相關資訊,請見 What does review rejection mean to users?

文件標籤與貢獻者

此頁面的貢獻者: pan93412, wildsky
最近更新: pan93412,