Règle de sécurité numéro zéro : avertissement concernant X-Forwarded-For

Écosystème F5 | 07 décembre 2017
dp-prog-oct-17-ihealth

Les proxys reposent sur le principe qu’ils servent à transmettre des requêtes d’un système à un autre. Ils apportent généralement une valeur ajoutée — sans quoi ils n’auraient pas lieu de s’interposer — comme l’équilibrage de charge (évolutivité), la prévention des fuites de données (sécurité) ou la compression (performances).

Le fait est que la requête envoyée par le client est transmise telle quelle à sa destination cible.

C’est là que les choses peuvent se compliquer. Aujourd’hui, nous constatons que plus de la moitié des applications fournies via un proxy utilisent X-Forwarded-For. 56 % des applications réelles en production l’utilisent, ce qui en fait une donnée particulièrement importante. X-Forwarded-For est l’en-tête HTTP personnalisé qui transmet l’adresse IP d’origine d’un client afin que l’application à l’autre extrémité puisse la connaître. Sans cela, elle ne verrait que l’adresse IP du proxy, ce qui contrarie certaines applications.

En effet, bon nombre d’applications ont besoin de connaître l’adresse IP réelle d’un client pour prévenir la fraude et autoriser l’accès. Si vous vous êtes récemment connecté à votre banque, à Gmail ou à votre compte Xbox (eh oui, c’est là que Minecraft se trouve, d’accord ?) depuis un appareil autre que celui que vous utilisez habituellement, vous avez peut-être reçu une alerte de sécurité. En effet, les informations concernant l’endroit depuis lequel vous vous connectez sont également suivies, notamment pour détecter les tentatives de fraude et les utilisations abusives.

Votre adresse IP réelle est également utilisée pour autoriser ou refuser l’accès à certains systèmes, ainsi que pour déterminer votre emplacement géographique. C’est pourquoi ces e-mails d’avertissement contiennent souvent une question du type : « Était-ce bien vous qui vous connectiez depuis la Bulgarie ? »

Certains systèmes utilisent également X-Forwarded-For pour appliquer un contrôle d’accès. WordPress, par exemple, utilise le fichier .htaccess pour autoriser l’accès en fonction des adresses IP. Certes, ce n’est pas la meilleure solution, mais c’est une pratique courante, et il faut au moins leur reconnaître le mérite d’essayer de protéger l’application contre les utilisations abusives.

Que ce soit une bonne idée ou non, si vous comptez utiliser X-Forwarded-For dans le cadre de votre mécanisme d’authentification ou d’autorisation, vous devriez probablement faire tout votre possible pour vous assurer qu’il s’agit bien de la véritable adresse IP du client. C’est l’un des facteurs les plus couramment pris en compte dans l’équation globale de la sécurité, et il protège autant le consommateur que les intérêts des entreprises.

Mais si vous acceptez aveuglément tout ce que le client vous envoie dans cet en-tête, vous risquez de permettre à quelqu’un d’usurper cette valeur et ainsi de contourner les mécanismes de sécurité destinés à empêcher les accès illégitimes. Après tout, je peux falsifier à peu près tout ce que je veux en écrivant quelques lignes de code ou en utilisant l’une des nombreuses extensions Chrome qui me permettent de manipuler facilement les en-têtes HTTP.

L’un des moyens de vous assurer que vous obtenez l’adresse IP réelle consiste à ne pas faire confiance aux données saisies par l’utilisateur. Eh oui, revoilà la règle de sécurité numéro zéro : ne faites jamais confiance aux données saisies par l’utilisateur. Et nous savons que les en-têtes HTTP sont des données saisies par l’utilisateur, même s’ils n’en ont pas l’air.

Si vous disposez déjà d’un proxy, tant mieux. Sinon, vous devriez en mettre un en place. C’est ainsi que vous pourrez extraire la bonne valeur, la renseigner dans X-Forwarded-For et bloquer net les usurpateurs.

En gros, votre proxy doit pouvoir examiner une requête et trouver l’adresse IP réelle dissimulée dans son paquet IP. Certains proxys peuvent le faire à l’aide de paramètres de configuration ou de règles, tandis que d’autres nécessitent un peu de magie côté programmation. Quelle que soit la méthode utilisée, c’est cette valeur que vous devez placer dans l’en-tête HTTP X-Forwarded-For avant de poursuivre normalement. Ainsi, les applications ou les services en aval disposent d’informations exactes sur lesquelles fonder leurs décisions, notamment en matière d’accès et d’autorisation.

Pour la plupart des architectures et des situations, cela réduira le risque qu’un en-tête X-Forwarded-For falsifié soit utilisé pour obtenir un accès non autorisé. Comme toujours, plus vous disposez d’informations permettant de comprendre précisément le client — et de vérifier sa légitimité —, plus votre sécurité est renforcée. La combinaison de l’adresse IP (dans l’en-tête X-Forwarded-For) avec le type d’appareil, les agents utilisateurs et d’autres informations automatiquement transmises par les protocoles HTTP et réseau fournit un contexte plus complet pour prendre une décision éclairée.

Restez en sécurité !

Ressources pour la gestion de X-Forwarded-For :

Partager
Mots-clés : 2017

À propos de l’auteur

Lori Mac Vittie
Lori Mac VittieIngénieur émérite et évangéliste en chef | F5

Lori MacVittie est ingénieure émérite et évangéliste en chef au sein du bureau du directeur technique de F5. Elle possède une expertise approfondie dans la fourniture d’applications, les stratégies d’automatisation et les infrastructures. Elle est réputée pour sa capacité à rendre la complexité intelligible, qu’elle définisse des garde-fous pour les agents d’IA, analyse des architectures multicloud fragiles ou explore les limites des systèmes évolutifs. Elle cumule plus de trente ans d’expérience dans le secteur, couvrant le développement d’applications, l’architecture informatique ainsi que l’exploitation des réseaux et des systèmes. Avant de rejoindre F5, elle a été rédactrice spécialisée dans les technologies et a reçu plusieurs distinctions. MacVittie est titulaire d’un master en informatique et est une autrice prolifique dont les publications couvrent la sécurité, le cloud et l’architecture d’entreprise. Elle est également une passionnée de jeux de société et de jeux vidéo, et assume pleinement ses avis bien tranchés sur le fromage.

Autres articles de Lori Mac Vittie

Articles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Écosystème F5 | 08/09/2025

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives

Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.

L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
Écosystème F5 | 24/04/2023

L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui

En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).

Appliquer le principe de Peter Parker à l’inspection TLS
Écosystème F5 | 09/12/2019

Appliquer le principe de Peter Parker à l’inspection TLS

« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.

Le NetOps a besoin de défenseurs, pas d’adversaires
Écosystème F5 | 13/12/2018

Le NetOps a besoin de défenseurs, pas d’adversaires

Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.

Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Écosystème F5 | 01/03/2018

Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects

Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…

Les templates prennent le contrôle du cloud
Écosystème F5 | 02/02/2017

Les templates prennent le contrôle du cloud

Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.