SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 241 visiteurs en ce moment

Accueil > Optimisation et performances > Update Headers > Masquer les en-têtes (Headers) HTTP avec Update Headers

Masquer les en-têtes (Headers) HTTP avec Update Headers

4 février 2014 – par captain_torche – 11 commentaires

20 votes

Cette contribution ou ce plugin est en phase de test. Des bugs peuvent subsister. N’hésitez pas à les signaler dans le forum ci-dessous.

Il arrive que pour des raisons de sécurité, on ait envie ou besoin de modifier certaines en-têtes HTTP transmises par le serveur. Ce plugin a pour but de faciliter ces modifications.

Qu’est-ce qu’une entête HTTP ?

Lorsqu’un fichier est appelé (Par un navigateur, par exemple), le code qu’il renvoit est séparé en deux parties : l’entête (head) et le contenu (body).

L’entête contient des informations sur le fichier (Taille, jeu de caractères utilisé, etc), ainsi que des informations sur le serveur. Elle peut également contenir des informations de mise en cache.

Pourquoi vouloir les masquer / les changer ?

Cette entête est parfois trop bavarde. Par défaut, elle renseigne sur la version d’Apache installée sur le serveur, ainsi que la version de PHP. Avec SPIP, elle renseigne également sur la version du site utilisée, ainsi que de la liste des plugins installés !

Par exemple, au moment où j’écris cet article, les entêtes renseignées dans SPIP-Contrib sont les suivantes :

Comme on le voit aisément au début de l’export, toutes les infos sur SPIP sont ainsi divulguées. On constate donc que le site est maintenu à jour (À l’heure où j’écris cet article, la version 3.0.14 est la version stable la plus récente de SPIP), mais on a également la liste de tous les plugins et leurs versions (Qui semblent aussi être à jour).

Dans le cas d’un site SPIP moins souvent maintenu, connaître la version du CMS permettrait à un éventuel pirate d’enquêter sur cette version précise et de trouver une faille (Qui est sans doute même déjà documentée dans les changelogs même de SPIP). De même, des plugins non mis à jour pourraient se révéler plus vulnérables.

Il est donc important, dans un site en production, de pouvoir masquer ces informations.

Dans Update-Headers, deux cases à cocher permettent de masquer la version de SPIP (Composed-By) et la version de PHP utilisée (X-Powered-By).

Il est également possible, pour un utilisateur avancé, de modifier d’autres en-têtes ou d’en ajouter à sa convenance, avec le champ d’édition avancée.

Télécharger le plugin

Le plugin est pour l’instant hébergé sur GitHub, à l’adresse suivante : https://github.com/captain-torche/SPIP-Update-Headers

Son archive peut être téléchargée ici : https://github.com/captain-torche/SPIP-Update-Headers/archive/master.zip

Alternative sans utiliser ce plugin

Ce plugin permet de configurer le texte renvoyé par les headers des pages servies par SPIP. Si on veut seulement que la version de SPIP et la liste des plugins ne figure pas du tout dans les headers, tout simplement, il suffit d’ajouter la ligne suivante dans votre fichier mes_options.php :

  1. <?php
  2. $spip_header_silencieux = 1;

Télécharger

Dernière modification de cette page le 22 mai 2016

Retour en haut de la page

Vos commentaires

  • Le 4 février 2014 à 14:47, par nicod_ En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

    Il me parait illusoire de se croire en sécurité en masquant la version de SPIP et de ses plugins.
    Si des attaques ont lieu, elles sont lancées par des bots qui testent des méthodes connues ou qui repèrent la version d’un CMS par d’autres signatures.

    • Le 4 février 2014 à 15:16, par captain_torche En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      Je ne veux pas dire qu’il s’agit d’une sécurité absolue (Je vais modifier l’article en ce sens), mais que sur des sites moins suivis/mis à jour, ne pas indiquer qu’on utilise des versions obsolètes peut malgré tout être un plus.

    • Le 4 février 2014 à 15:26, par Cédric En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      Non justement c’est bien le problème : ça n’est pas un plus en terme de sécurité.
      Ça ne fait que donner une illusion de sécurité : les bots d’attaque testent toutes les failles connues. Et les humains, ils utilisent un bot.
      Ça n’empêchera donc jamais personne d’utiliser une faille de sécurité présente sur ton site.
      Mais si en plus ça retarde la mise à jour de Spip ou des plugins au motif que la faille ne se voit pas, alors c’est carrément un moins en terme de sécurité.

    • Le 4 février 2014 à 16:41, par captain_torche En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      En fait, j’ai un peu trop centré mon intro sur cette fonctionnalité alors qu’il permet d’éditer n’importe quelle entête. Mais effectivement, comme c’était un développement demandé par mon entreprise avec cette fonctionnalité obligatoire, je l’ai beaucoup (trop) mise en avant.

    • Le 4 février 2014 à 17:49, par g0uZ En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      Je pense vraiment que le « problème » doit être abordé. On est tous d’accord pour dire que la sécurité par l’obscurité n’apporte rien, merci Kerckhoffs et la « maxime de Shannon ».

      Mais partant de là, « l’adversaire connait le système », il faudrait peut être laisser le choix à l’utilisateur de mettre en libre accès ou non ces informations.

      Ce soucis pourrait être réglé facilement sans touché à une ligne de code PHP, en laissant le choix à l’utilisateur, avec ces quelques lignes dans le fichiers .htaccess livré en standard avec SPIP :

      ### Interdire l'accès au fichiers SPIP
      # RewriteRule ^svn[.]revision$              - [F]
      # RewriteRule ^local/config.txt$         - [F]
      # RewriteRule ^squelettes/(.*).html$  - [F]

      C’est navrant de voir le nombre de portails propulsés par SPIP qui sont malheureusement mal codés et se retrouvent vulnérables à des injections de code PHP, SQL ou autre javascript qui deviennent triviales à exploiter parce qu’on peut facilement lire le code...

    • Le 4 février 2014 à 18:15, par denisb En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      si un spip n’est pas à jour (ni par son écran de sécurité), on aura beau masquer tout et le reste, les failles resteront béantes et les scripts de test ou d’attaque resteront tout autant efficaces.

      pour connaître la version d’un plugin, j’ai juste besoin d’un accès (http ou autre) à son fichier paquet.xml
      et pour connaître la version d’un spip idem avec ecrire/paquet.xml

      donc : bon...

    • Le 5 février 2014 à 00:55, par erational En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      A noter qu’il existe aussi la constante $spip_header_silencieux qui permet de ne pas dévoiler la version de spip et plugins. Et ceci sans aucun plugin ...

      mes_options.php
      $spip_header_silencieux = 1;

      Documentation
      http://www.spip.net/fr_article4648.html

    • Le 5 février 2014 à 08:38, par Cerdic En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      @g0uz : ce que tu mentionnes c’est le cas où les développeurs mettent dans les squelettes en dur des requêtes SQL sans échappement, ou du PHP qui accède aux $_GET en les réinjectant dans le PHP sans précaution.
      Ces pratiques sont un non sens en terme de sécurité, à l’encontre de toutes les bonnes pratiques.
      On peut certes les cacher sous le tapis avec la RewriteRule que tu proposes.

      Mais c’est faire fi de l’objectif initial de SPIP : si les squelettes sont enregistrés dans des fichiers avec une extension html c’est justement dans le but de permettre à chacun de lire le code source d’un autre site et de s’en inspirer pour son propre site.
      C’est à dire de rendre le plus facile possible le partage et la diffusion du savoir faire.

      La question revient finalement à savoir si SPIP doit plutôt faire en sorte de cacher les mauvaises pratiques de développement ou au contraire de faciliter la transmission du savoir faire. Tu devineras sans peine que c’est cette dernière option qui est conforme à l’objectif du projet…

    • Le 5 février 2014 à 09:57, par captain_torche En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      @erational, il y a effectivement un double emploi, je ne connaissais pas ce réglage.

      J’enlèverai la possibilité de masquer la version de SPIP dans une version ultérieure du plugin, et j’ajouterai un lien vers la documentation officielle.

    • Le 10 février 2014 à 13:29, par g0uZ En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

      Je parle bien de laisser le choix à l’utilisateur, on est bien d’accord sur les principes de partage et d’ouverture liés à ce CMS :-)

      Les exemples donnés par denisb illustre bien la facilité avec laquelle on peut récupérer de l’information qui pourrait être utilisée à mauvais escient. Dans mon cas je parle plus d’attaque adaptée car accès, notamment, au code SPIP utilisé. A coté de ca, il existe je pense un grand nombre de sites, n’utilisant que du code SPIP, vulnérable à des XSS mais en oubliant les filtres adéquats.

      Avertir l’utilisateur, lui laisser le choix de rendre ou non accessible ces données avec les procédures techniques adaptées me semble important. Après on peut discuter de la valeur par défaut :-p

    Répondre à ce message

  • Le 5 février 2014 à 12:14, par denisb En réponse à : Masquer les en-têtes (Headers) HTTP avec Update Headers

    je réitère mon propos : tout ceci n’a rien à voir(mais alors ce qui s’appelle rien de rien !) avec de la sécurité accrue pour un site spip.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Adaptive Images

    15 novembre 2013 – 69 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Social tags

    8 septembre 2008 – 428 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

Ça spipe par là