Tout inclure en HTTPS
Bonjour,
Chrome bloque des requêtes d'éléments chargés par zwii :
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure script '<URL>'. This request has been blocked; the content must be served over HTTPS.
Zwii peut-il appeler ses sous-contenus en HTTPS quand il est lui-même appelé en HTTPS ? (sans dépendre de config tierce, serveur web, hébergeur etc).
En effet, ici c'est Chrome qui bloque. Même si côté serveur je redirige tout le traffic HTTP vers HTTPS, ça ne sert à rien puisque la requête ne part pas du navigateur. Autoriser le contenu non sécurisé dans Chrome fait que ça remarche, mais je ne peux pas exiger ça des internautes :)
Merci !
Post edited by farfade on
0
Connectez-vous ou Inscrivez-vous pour répondre.
Commentaires
Bonjour
Quel contenu est-il chargé en http ?
Bonjour fred,
Quasiment tout le css et le js, pour autant que je puisse en juger. Par exemple :
Mixed Content: The page at 'https://domain.com/' was loaded over HTTPS, but requested an insecure script 'http://domain.com/core/vendor/jquery/jquery.min.js'. This request has been blocked; the content must be served over HTTPS.
Ca charge si je surcharge isHttps() { return (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https'); }
Je suis sur une Azure Web App, je pense que la raison est la suivante :
In App Service, TLS/SSL termination happens at the network load balancers, so all HTTPS requests reach your app as unencrypted HTTP requests. If your app logic needs to check whether the user requests are encrypted, inspect the
X-Forwarded-Proto
header:PHPCopy
Popular web frameworks let you access the
X-Forwarded-*
information in your standard app pattern. In CodeIgniter, the is_https() function checks the value ofX_FORWARDED_PROTO
by default.Bon, maintenant il faut que je trouve pourquoi je ne peux pas me logguer. ?user/login fait un POST sur index mais rien ne se passe.
La condition initiale "$this->isPost()" dans la fonction login() n'a pas l'air de plaire à Azure Web App. Si je la shunte, la fonction login fait son job (réagit correctement en fonction du password, du captcha, ...) mais le login ne persiste pas. Je sens que je ne suis pas sorti de l'auberge :D
Dans le script main.php, le chargement des ressources de Zwii ne s'effectue que selon l'URL de base. Si l'URL de base, donc celle du site est HTTP, les ressources sont en HTTP, sinon en HTTPS.
Je pense que la solution du reverse proxy devrait fonctionner, ceci dit je n'ai aucune connaissance de ces problématiques.
La modification devrait être située dans l'entête de main.php :
Bon courage :)