web-dev-qa-db-fra.com

Comment forcer le chargement de contenu dynamique et non sécurisé dans Chrome?

J'utilise Jira dans https et j'ai quelques ajustements que j'aimerais faire avec du JS supplémentaire. Mon JS est hébergé sur un serveur non sécurisé (pas de https disponible).

Lorsque je charge dynamiquement le fichier JS non sécurisé en l'insérant dans le DOM (à l'aide d'une extension de navigateur), Chrome me dit:

[bloqué] La page à https://jiraserver/browse a diffusé du contenu non sécurisé à partir de http://myserver/jira.js.

Je peux voir comment cela est très sûr et tout, mais je m'en fiche. Je veux charger ce fichier JS non sécurisé. Comment puis-je dire à Chrome de me faire confiance et de faire ce que je dis?

Ma méthode d'insertion (dans le code d'extension):

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

Selon this Chrome Support Q&A vous pouvez lancer votre Chrome avec l'indicateur de ligne de commande suivant pour empêcher Chrome lors de la vérification du contenu non sécurisé:

--allow-running-insecure-content

Voici ne documentation sur la façon d'exécuter Chrome avec les drapeaux de commande

20
ariera

Chrome ne chargera tout simplement pas un script non sécurisé dans une page sécurisée.

Est-ce que votre jira.js a à charger depuis un serveur? La meilleure façon de l'injecter dans la page serait de l'inclure dans votre bundle d'extension.

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);

Si vous devez le charger depuis un serveur, je suppose que votre extension pourrait faire une requête XHR pour le script, puis injecter la réponse dans la page.

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

J'ai eu le même problème: Notre client lie un fichier CSS et un fichier js hébergé sur notre serveur sur un domaine qui n'est pas sécurisé.

Nous allons le résoudre en utilisant Amazon CloudFront. Ils serveur HTTPS en utilisant leurs certificats qui est vérifié.

Ce n'est pas une mauvaise solution car CDN est souvent une bonne idée et ces ressources sont quelque peu statiques. (Le fichier CSS est adapté à chaque client et est en fait généré mais un bon sens TTL peut être configuré et le CDN vidé si nécessaire)

Notez que la solution CDN peut même être plus abordable que l'achat d'un certificat en fonction de votre charge de données.

1
programaths

J'ai rencontré le même problème et je constate que si nous sommes connectés à notre compte Google en chrome puis Chrome arrêtez de charger le contenu non sécurisé dans https.

Si nous utilisons fenêtre de navigation privée pour charger le site Web dont le contenu n'est pas sécurisé, cela fonctionnera.

0
Amit Garg