Anomalie #1350
La page de connexion httpS du wiki redirige vers http(pas-S)
0%
Description
Pour reproduire:
- Vider ses cookies
- Aller sur https://wiki.april.org/
- Cliquer sur "Créer un compte ou se connecter"
- Rentrer ses identifiants
Vérifier que le formulaire pointe sur HTTPS
- Cliquer sur "Connexion"
Noter qu'on se prend un 302 vers http://wiki.april.org/
Historique
Mis à jour par Anonyme il y a plus de 10 ans
Je souhaite ajouter que en https, un certain nombre d'éléments restent en http. Il serait amha utile soit de faire en sorte que le wiki soit sur ://wiki.april.org ou basculer totalement en https.
Mis à jour par Vincent-Xavier JUMEL il y a plus de 9 ans
- Catégorie mis à Task
- Version cible mis à Backlog
Mis à jour par François Poulain il y a plus de 7 ans
- Description mis à jour (diff)
- Statut changé de Nouveau à Confirmé
Oui c'est juste.
Les entêtes de la transaction :
POST:
Host: wiki.april.org User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.5.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr-FR,fr;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Referer: https://wiki.april.org/index.php?title=Sp%C3%A9cial:Connexion&returnto=Accueil Cookie: bling Connection: keep-alive
Réponse :
Cache-Control: private, must-revalidate, max-age=0 Connection: keep-alive Content-Length: 0 Content-Type: text/html; charset=utf-8 Date: Thu, 20 Oct 2016 12:27:57 GMT Expires: Thu, 01 Jan 1970 00:00:00 GMT Location: http://wiki.april.org/w/Accueil Server: nginx/1.6.2 Set-Cookie: blang Vary: Accept-Encoding,Cookie X_FORWARDED_PROTO: https x-content-type-options: nosniff
Le "location" défini par médiawiki pousse vers http.
Mis à jour par François Poulain il y a plus de 7 ans
Bon,
A priori le soucis vient du fait que la liaison entre le nginx et le apache est en http.
Le code incriminé est ici (/var/lib/mediawiki/includes/OutputPage.php l. 2243) :
# Standards require redirect URLs to be absolute $this->mRedirect = wfExpandUrl( $this->mRedirect, PROTO_CURRENT );
D'après includes/GlobalFunctions.php
:
* The meaning of the PROTO_* constants is as follows: * PROTO_HTTP: Output a URL starting with http:// * PROTO_HTTPS: Output a URL starting with https:// * PROTO_RELATIVE: Output a URL starting with // (protocol-relative URL) * PROTO_CURRENT: Output a URL starting with either http:// or https:// , depending * on which protocol was used for the current incoming request
Je vois deux façon de résoudre ça :
- causer https entre le nginx et le apache ;
- patcher pour forcer le PROTO_HTTPS.
Je suis étonné qu'on n'ait pas ce même type d'ennui avec d'autres applications.
Mis à jour par François Poulain il y a plus de 7 ans
- Statut changé de Confirmé à En cours de traitement
Mis à jour par François Poulain il y a plus de 7 ans
D'ici le 17 janvier on saura peut être si on peut commenter la ligne de code, cette proposition autorisant les URL sans plan dans les entêtes Location : https://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-20#section-9.13
Mis à jour par François Poulain il y a plus de 7 ans
Ha beh en fait on peut déjà, d'après https://tools.ietf.org/html/rfc7231#section-7.1.2
Alors, une solution acceptable est de commenter la ligne qui force la définition d'une URL absolue.
Mis à jour par François Poulain il y a environ 7 ans
- Statut changé de En cours de traitement à Fermé
En fait non. Mediawiki vérifie correctement la présence d'un x-forwarded-proto. Le soucis venait du reverse proxy qui ne transmettait pas cet entête. Cf bug #1840.