Rediriger en HTTPS quand l’utilisateur est connecté

Passez automatiquement en HTTPS pour les pages contenant des informations privées (espace privé, login, crayons...)

Intérêt d’utiliser HTTPS

Pour éviter que les informations de connexion circulent en clair sur le réseau, ou pour empêcher l’usurpation d’identité, il est de bon ton de protéger certaines pages de SPIP, généralement :

  • l’espace privé
  • la page de login

Mais il est aussi important de protéger les pages publiques qui permettent d’une manière ou de l’autre de modifier la base de données, par exemple avec les crayons.

Fonctionnement du plugin

Le plugin est très simple et change simplement le protocole de HTTP à HTTPS si :

  • le visiteur est connecté (i.e. quand il existe un cookie de session)

ou si

  • la page demandée est la page de login

A noter : l’espace privé est bien protégé puisqu’on ne peut y accéder qu’en s’étant authentifié, ce qui crée le cookie de session.

Configuration du serveur web

Pour utiliser le plugin, il faut évidemment que le serveur web (Apache, par exemple) soit configuré pour servir en HTTP et en HTTPS.

Contenu mixte HTTP et HTTPS

Normalement, SPIP générera toute la page en HTTP, ou en HTTPS, mais pas de contenu mixte. En revanche, les librairies Javascript, par exemple OpenLayers, ou tout autre code ajouté à la main devra gérer HTTP et HTTPS pour éviter ce contenu mixte. Pour cela, il est possible d’ajouter un proxy PHP par exemple.

Attention : Pour les versions de SPIP antérieures à 2.1.11, vous devez modifier le core. Pour que tout fonctionne bien, les pages servies en HTTP et en HTTPS doivent piocher dans un cache différent, sinon tout se mélange. Si votre installation de SPIP ne contient pas encore la modification http://core.spip.org/projects/spip/repository/revisions/17941, il faut l’ajouter à la main :

  • ouvrir le fichier ecrire/public/assembler.php
  • dans la fonction calculer_contexte_implicite(), ajouter la ligne avec HTTPS pour obtenir :
            $contexte_implicite = array(
                    'squelettes' => $GLOBALS['dossier_squelettes'],
                    'host' => $_SERVER['HTTP_HOST'],
                    'https' => $_SERVER['HTTPS'],
                    'espace' => test_espace_prive(),
                    'marqueur' => (isset($GLOBALS['marqueur']) ?  $GLOBALS['marqueur'] : ''),
                    'notes' => $notes?$notes('','contexter_cache'):'',
            );

Cette modification est incluse dans le core de spip à partir de 2.1.11, et également dans spip3. La manipulation n’est donc pas nécessaire pour ces dernières versions.

Discussion

Une discussion

  • 1

    Salut, on a testé de forcer la compatibilité avec SPIP 4.2, on ne sait pas si ca a fonctionné et ca nous fait poser la question : est ce que cette fonctionnalité n’a pas depuis été prise en charge de base dans les nouvelles versions de SPIP ? Merci :)

    • Non ce n’est pas de base de SPIP.

      Mais ce plugin me semble une mauvaise idée : il faut que la connexion https soit tout le temps, et pas seulement lorsque connecté (il faut d’ailleurs que cela soit AVANT la connexion : sinon tu envoie ton mot de passe en clair depuis la version 4.1 de SPIP)

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom