簡體   English   中英

如何在Firefox附加組件上允許跨域內容腳本而不觸發混合內容阻止錯誤

[英]How to allow cross domain content script on Firefox add-on without firing mixed content blocking errors

我正在開發Firefox附加組件。 這是Gmail的內容腳本 在內容腳本上,我向在localhost上運行的服務器發出請求。 在package.json文件中,我已允許來自本地主機的跨域內容 ,如下所示:

 "permissions": {
      "cross-domain-content": ["http://127.0.0.1:5000/"]
  },

但是,每當我運行插件時,都會出現“阻止加載混合的活動內容”錯誤。我知道,自Firefox 23起, 就啟用了混合內容阻止功能 。有沒有辦法解決該加載項問題?顯而易見的解決方案是使用https在本地主機上運行我的服務器,但是我希望該服務器易於安裝並由用戶運行,因此我想避免使用該選項,而且該服務器只能在本地主機上運行。即使Chrome瀏覽器也阻止加載混合的活動內容,也無法通過Chrome版本的插件解決此問題。

指定該權限將導致Sandboxworker在SDK內部而言, content script在文檔)簡單地得到一個新的XMLHttpRequest的構造,有一個以上的委托人(或“原點”,如果你喜歡)。 這將僅更改對同源策略的評估方式,而不會更改一般性安全策略,尤其是混合內容策略的實施方式。 也就是說:正如您注意到的那樣,您仍然無法對HTTP XHR做https。

您無法在內容腳本中使用任何解決方法。 但是,您可以向主腳本發送消息以執行請求,然后將結果(再次通過消息傳遞)傳遞回內容腳本。

提交錯誤 至少應記錄此限制。

就個人而言,我不贊成取消它。 混合內容是一個安全問題,除了localhost外,都是安全問題,因此繞過它的任何代碼都應該易於在代碼審查過程中檢測到,例如我提出的建議的來回消息工作(在代碼審查過程中引起注意) 。 或者也許只是將其localhost 但是這個決定取決於mozilla平台,附加SDK和安全團隊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM