![](/img/trans.png)
[英]How do Optimizely trick chrome to no prompt for loading insecure content
[英]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.