Hello,
c'est à toi de voir pour que PHP ait bien $_SERVER['HTTPS'] de rempli
correctement, ce que tu me signale n'est qu'un bug dans ta
configuration.
Garradin ne peut pas prendre en compte des entêtes HTTP supplémentaires
tel que X-Forwarded-Protocol comme tu le dis car ces entêtes peuvent
être forgés facilement par un attaquant pour induire en erreur et faire
croire à une victime qu'elle utilise une connexion sécurisée alors que
ce n'est pas le cas. La seule valeur sécurisée indiquée par PHP,
c'est dans $_SERVER['HTTPS']. Si cette valeur n'est pas correcte à
cause d'une configuration spécifique c'est à toi de corriger ce
comportement.
Une solution simple serait simplement dans ton cas de mettre ceci dans
ton fichier config.local.php :
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
{
$_SERVER['HTTPS'] = true;
}
Mais ceci uniquement si tu es sûr que ton reverse proxy supprime cet
entête s'il a été envoyé par le client, dans le cas contraire ça serait
une faille de sécurité.
Cordialement.
On Wed, 21 Mar 2018 10:05:56 +0100 / Jérôme AVOND
<jerome.avond@alolise.org> said :
> Bonjour,
>
> * L'adresse de la page sur laquelle le bug est survenu (vous pouvez
> supprimer le domaine de l'adresse pour préserver vos informations
> personnelles)
> o Page de login d'administration
> + Indication d'une connexion non sécurisée, alors que le
> Reverse Proxy devant garradin est en TLS-only termination
> + Le RP envoie les Headers suivants :
>
> |X-Forwarded-Protocol: https X-Forwarded-Ssl: on
> X-Url-Scheme: https|
>
> * Les dernières lignes du fichier error.log situé à la racine de
> votre installation de Garradin
> o RAS
> * La version de PHP et des modules utilisés (consultable dans la
> page "Configuration" de Garradin)
> o Version installée
> 0.8.2 [release]
> Informations système
> Version PHP : 7.0.27-0+deb9u1
> Version SQLite : 3.16.2
> Heure du serveur : 21/03/2018 09:55:28
> Chiffrement GnuPG : non, module PHP gnupg non installé ?
> * Le message d'erreur (s'il apparaît à l'écran)
> o Connexion non sécurisé : passez à HTTPS
> * Le parcours réalisé pour arriver au message d'erreur (quel bouton
> a été cliqué sur quelle page par exemple)
> o Connexion sur Administration
>
> PS : J'ai corrigé notre version en modifiant le fichier
> /var/www/garradin/www/admin/login.php ligne 49
>
> < $tpl->assign('ssl_enabled', empty($_SERVER['HTTPS']) ?
false :
> true);
>
> > $tpl->assign('ssl_enabled', empty($_SERVER['HTTPS']) ?
true : true);
>
> Assurant ainsi que le site serait toujours convaincu d'être derrière
> une connexion sécurisée,
>
> Il est de plus en plus courant de mettre des applications derrière un
> reverse proxy, ceci permet d'assurer plusieurs choses :
>
> * Sécurité :
> o Authentification spéciale
> o Web guard
> o Centralisation de la mise en TLS
> * Exploitation :
> o Mise à jour via clone, puis remplacement
> o Version non production
> * Confinement :
> o Pas d'accès web
>
> Et j'en oublie forcément, les avantages sont multiples, il serait
> intéressant que Garradin prenne en charge les headers indiqués.
>
>
> En vous remerciant pour votre attention,
>
> Cordialement,
>
Pourriez-vous me sortir de la liste de diffusion ?
MERCI
Cordialement
Bruno
Le 21 mars 2018 à 10:40, BohwaZ/Garradin <garradin@garradin.eu> a écrit :
>
> Hello,
>
> c'est à toi de voir pour que PHP ait bien $_SERVER['HTTPS'] de
rempli
> correctement, ce que tu me signale n'est qu'un bug dans ta
> configuration.
>
> Garradin ne peut pas prendre en compte des entêtes HTTP supplémentaires
> tel que X-Forwarded-Protocol comme tu le dis car ces entêtes peuvent
> être forgés facilement par un attaquant pour induire en erreur et faire
> croire à une victime qu'elle utilise une connexion sécurisée alors que
> ce n'est pas le cas. La seule valeur sécurisée indiquée par PHP,
> c'est dans $_SERVER['HTTPS']. Si cette valeur n'est pas
correcte à
> cause d'une configuration spécifique c'est à toi de corriger ce
> comportement.
>
> Une solution simple serait simplement dans ton cas de mettre ceci dans
> ton fichier config.local.php :
>
> if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
> && $_SERVER['HTTP_X_FORWARDED_PROTO'] ==
'https')
> {
> $_SERVER['HTTPS'] = true;
> }
>
> Mais ceci uniquement si tu es sûr que ton reverse proxy supprime cet
> entête s'il a été envoyé par le client, dans le cas contraire ça
serait
> une faille de sécurité.
>
> Cordialement.
>
> On Wed, 21 Mar 2018 10:05:56 +0100 / Jérôme AVOND
> <jerome.avond@alolise.org> said :
>
> > Bonjour,
> >
> > * L'adresse de la page sur laquelle le bug est survenu (vous
pouvez
> > supprimer le domaine de l'adresse pour préserver vos
informations
> > personnelles)
> > o Page de login d'administration
> > + Indication d'une connexion non sécurisée, alors que le
> > Reverse Proxy devant garradin est en TLS-only termination
> > + Le RP envoie les Headers suivants :
> >
> > |X-Forwarded-Protocol: https X-Forwarded-Ssl: on
> > X-Url-Scheme: https|
> >
> > * Les dernières lignes du fichier error.log situé à la racine de
> > votre installation de Garradin
> > o RAS
> > * La version de PHP et des modules utilisés (consultable dans la
> > page "Configuration" de Garradin)
> > o Version installée
> > 0.8.2 [release]
> > Informations système
> > Version PHP : 7.0.27-0+deb9u1
> > Version SQLite : 3.16.2
> > Heure du serveur : 21/03/2018 09:55:28
> > Chiffrement GnuPG : non, module PHP gnupg non installé ?
> > * Le message d'erreur (s'il apparaît à l'écran)
> > o Connexion non sécurisé : passez à HTTPS
> > * Le parcours réalisé pour arriver au message d'erreur (quel
bouton
> > a été cliqué sur quelle page par exemple)
> > o Connexion sur Administration
> >
> > PS : J'ai corrigé notre version en modifiant le fichier
> > /var/www/garradin/www/admin/login.php ligne 49
> >
> > < $tpl->assign('ssl_enabled',
empty($_SERVER['HTTPS']) ? false :
> > true);
> >
> > > $tpl->assign('ssl_enabled',
empty($_SERVER['HTTPS']) ? true : true);
> >
> > Assurant ainsi que le site serait toujours convaincu d'être
derrière
> > une connexion sécurisée,
> >
> > Il est de plus en plus courant de mettre des applications derrière un
> > reverse proxy, ceci permet d'assurer plusieurs choses :
> >
> > * Sécurité :
> > o Authentification spéciale
> > o Web guard
> > o Centralisation de la mise en TLS
> > * Exploitation :
> > o Mise à jour via clone, puis remplacement
> > o Version non production
> > * Confinement :
> > o Pas d'accès web
> >
> > Et j'en oublie forcément, les avantages sont multiples, il serait
> > intéressant que Garradin prenne en charge les headers indiqués.
> >
> >
> > En vous remerciant pour votre attention,
> >
> > Cordialement,
> >
>
> --
> . ____
> / ___| Liste d'entraide des utilisateurs de Garradin
> | | _ http://garradin.eu/
> | |_| |
> \____| Désinscription : http://garradin.eu/aide/
>