2015-08-24 194 views
0

我正在研究Chrome擴展程序,它幾乎已完成。它使用CryptoJS,但我想知道在發佈擴展包時是否可以將這些文件(例如sha1.js)包含在內(我下載了CryptoJS並將SHA腳本文件複製到擴展目錄中)。我可以在我的Chrome擴展中包含CryptoJS文件嗎?

當然的替代方法是將URL包含在腳本標籤中,但不能正常工作。

任何幫助,將不勝感激。

+4

你說的是什麼意思?合法?技術上?你遇到什麼問題? –

+0

合法的是我問的。對不起,這不夠清楚。 – Michael

回答

1

有利有弊。主要優點。

  • 本地文件加載速度會更快 - 磁盤延遲低於網絡延遲。
  • 本地文件將確保您的擴展工作離線/連接不暢。
  • 本地文件在CDN出現問題的情況下更可靠。
  • 本地文件享有額外的保護(至少在Windows/Mac平臺上),因爲CWS將爲所有文件生成校驗和,並且如果文件被篡改,商店安裝的擴展將從加載停止。
  • 本地文件是安全的網絡MITM攻擊。
  • 本地文件被凍結在特定版本 - 您不會冒着更新庫和破壞兼容性的風險。
  • 在主擴展代碼(不是內容腳本)中使用外部代碼需要a modification of CSP和啓用了HTTPS的CDN(用於MITM攻擊原因)。
  • 內容腳本中使用外部代碼可能需要額外的權限(取決於CDN的CORS配置)

然而,這將是由你來保持更新庫。

  • 如果庫中存在嚴重錯誤/漏洞利用,可以靜默更新CDN提供的文件(如果指向「最新」版本)以緩解該問題。如果是本地文件,則需要了解更新並自行應用。
  • 如果不向CWS發佈新版本,則無法更新本地文件。外部託管的文件可以獨立更新。
+0

謝謝你,我沒有真正考慮考慮性能因素。從法律上講,在擴展包中包含CryptoJS文件是否可行?在我發佈擴展之前是否需要聲明某處? – Michael

+0

取決於CryptoJS和您的程序的許可證。 – Xan

1

我已經這樣做了,但只在我的開發機器上測試過,沒有發佈到Chrome網上應用店。您只需將其包含在您的manifest.json文件中:

{ 
... 
    "background": { 
     "scripts": [ 
      "cryptojs.js", 
      "main.js"] 
} 
... 
} 
相關問題