J'ai une application Web sécurisée (HTTPS) qui doit charger une feuille de style personnalisée à partir d'une origine non sécurisée (HTTP) (propre site Web du client). Ceci est bloqué par les navigateurs modernes, mais j'ai besoin d'une solution de contournement car:

1) Je ne peux pas demander à mes clients d'héberger leurs feuilles de style personnalisées sur HTTPS. Ils n'ont pas le savoir-faire et certains d'entre eux ont des politiques sur les hôtes et les régions qui peuvent être hébergés (ironiquement, pas sur HTTPS cependant). 2) Je ne peux évidemment pas demander à l'utilisateur final de désactiver les fonctions de sécurité de son navigateur.

J'ai essayé, en chargeant des feuilles de style en utilisant <style>@import url(...);</style>, j'ai essayé de créer un iframe avec src = "about: blank" et de charger la feuille de style à partir de là, j'ai essayé XHR et récupérer (mais cela nécessitera l'activation de CORS sur la télécommande) hôte que je ne peux pas raisonnablement attendre).

À moins de créer un proxy sécurisé qui servira toute feuille de style sur le Web, y a-t-il une autre solution de contournement qui me manque ici?

Une sorcellerie pour que ma page charge une feuille de style d'origine croisée sur HTTP?

1
sstur 8 mars 2016 à 12:29

3 réponses

Meilleure réponse

S'il existait une solution de contournement pour pouvoir charger des ressources non sécurisées sur des pages sécurisées, elle devrait être corrigée dès que possible. Non, la politique existe car sans HTTPS sur les ressources all , vous n'êtes pas vraiment sécurisé. Toute connexion HTTP peut être interceptée et man-in-the-middled, donc la page n'est pas sécurisée. Même quelque chose de mineur comme une feuille de style peut saper cette sécurité.

Vous devrez servir la feuille de style via HTTPS, et si vos clients ne peuvent pas le faire, vous devrez le faire pour eux.

1
deceze 8 mars 2016 à 09:41

Est-il possible de télécharger leur côté serveur CSS et de le servir à vos propres utilisateurs via HTTPS?

0
Steven Lemmens 8 mars 2016 à 09:44

J'ai essayé de faire la même chose avec une webapp que j'ai construite. Le vrai problème avec ce que vous voulez faire est le navigateur. Il ne permet pas qu'une connexion sécurisée soit gâchée par une connexion non sécurisée, en particulier lorsque vous souhaitez injecter quelque chose sur cette page. J'ai utilisé cette technique:

document.createElement("link") 

Injecter. Et avec la sécurité du navigateur étant un gros problème, je ne pense pas que vous trouverez un hack .. Bonne chance! :)

0
miqueloi 8 mars 2016 à 09:47