簡體   English   中英

如何強制加載Chrome中動態,不安全的內容?

[英]How to force loading dynamic, insecure content in Chrome?

我在https中使用Jira,我想用一些額外的JS做一些調整。 我的JS托管在一台不安全的服務器上(沒有https可用)。

當我通過將不安全的JS文件插入DOM(使用瀏覽器擴展名)動態加載它時,Chrome會告訴我:

[已阻止] https://jiraserver/browse頁面從http://myserver/jira.js運行了不安全的內容。

我可以看到這是多么安全和所有,但我不在乎。 我想加載那個不安全的JS文件。 我怎么能告訴Chrome信任我,只是按照我說的去做?

我的插入方法(在擴展碼中):

document.body.appendChild((function(s){s.src='http://myserver/jira.js';return s;})(document.createElement('script')));

根據此Chrome支持問答,您可以使用以下命令行標記啟動Chrome,以防止Chrome檢查不安全的內容:

--allow-running-insecure-content

以下是有關如何使用命令標志運行Chrome的一些文檔

Chrome根本不會在安全頁面中加載不安全的腳本。

你的jira.js是否必須從服務器加載? 將其注入頁面的最佳方法是將其包含在擴展包中。

var s = document.createElement('script');
s.src = chrome.extension.getURL("jira.js");
s.onload = function() {
    this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);

如果您必須從服務器加載它,我想您的擴展可以為腳本發出XHR請求,然后將響應注入頁面。

// make a XHR request, then...
var s = document.createElement('script');
s.textContent = codeFromXHR;
(document.head||document.documentElement).appendChild(s);
s.parentNode.removeChild(s);

我遇到了同樣的問題:我們的客戶端鏈接一個CSS文件和我們服務器上托管的js文件在一個不安全的域上。

我們將使用Amazon CloudFront解決它。 他們使用經過驗證的證書來服務HTTPS。

這不是一個糟糕的解決方案,因為CDN通常是一個好主意,而且這些資源有點靜態。 (CSS文件是為每個客戶端量身定制的,實際上是生成的,但可以配置一個理智的TTL,並在需要時刷新CDN)

請注意,根據您的數據負載,CDN解決方案甚至可能比實際購買證書更實惠。

我遇到了同樣的問題,發現如果我們以Chrome格式登錄我們的Google帳戶,Chrome會停止以https格式加載不安全的內容。

如果我們使用隱身窗口加載具有不安全內容的網站,那么它將起作用。

暫無
暫無

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

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