Fasterize sert vos pages web et donc toutes les requêtes à votre origine proviendront des adresses IP de la plateforme Fasterize.

proxy

En utilisant un service fonctionnant de type proxy comme Fasterize, les logs des serveurs d’origine afficheront les IPs des machines de Fasterize au lieu des IP Client. Cela rend donc les IP Client anonymes, ce qui empêche la prévention d’activité abusive pour une IP en particulier.

 

X-Forwarded-For et True-Client-IP

Pour obtenir l’adresse IP des utilisateurs sur vos serveurs d’origine, nous avons ajouté deux entêtes HTTP aux requêtes vers votre serveur : X-Forwarded-For ou True-Client-IP.

X-Forwarded-For: client, proxy1, proxy2

True-Client-IP: client

L’entête X-Forwarded-For est une liste d’adresses IP ayant transféré la requête. La première adresse IP est l’adresse IP du navigateur.

Tester la compatibilité de votre serveur

Il est possible d’émuler le branchement de Fasterize en utilisant l’extension chrome ModHeader pour insérer l’entête X-Forwarded-For qui serait envoyé dans les entêtes des requêtes vers votre serveur.

Par exemple, vous pouvez ajouter l’entête suivant X-Forwarded-For: 109.190.109.118 via l’extension et commander un produit sur votre site. Ensuite, il vous suffit de regarder dans les logs de votre serveur et dans le backoffice si l’adresse IP 109.190.109.118 est bien récupérée.

Implémentation sur votre serveur

Voici quelques astuces pour configurer correctement votre serveur web pour récupérer la valeur de l’entête X-Forwarded-For :

  • Apache : nous vous conseillons l’utilisation du module RemoteIP.

Vous pouvez compiler et installer le module avec

apxs -i -a -c mod_remoteip.c

Ensuite, rajouter cette ligne dans votre vhost Apache

RemoteIPHeader True-Client-IP

Mise à jour des logs serveurs

Si vous ne souhaitez pas rajouter un module pour Apache ou Nginx, vous pouvez seulement rajouter l’adresse IP cliente dans les logs.

Pour Apache, ouvrez le fichier /etc/httpd/conf/httpd.conf, remplacer la ligne de CustomLog par :

LogFormat "%{True-Client-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
SetEnvIf True-Client-IP "^.*\..*\..*\..*" forwarded
CustomLog "/usr/local/apache/domlogs/mydomain.com" combined env=!forwarded
CustomLog "/usr/local/apache/domlogs/mydomain.com" proxy env=forwarded

Apache va alors choisir le bon format de logs selon la détection de l’entête True-Client-IP.

Implémentation sur votre CMS

Si vous ne pouvez pas modifier le code de votre serveur, vous pouvez modifier votre CMS pour gérer les proxys :

    • WordPress: utilisez le plugin Proxy Real IP ou Real IP.
    • Magento 1 et 2: Vous devez ajouter la section suivante sur votre local.xml pour correctement interpréter les entêtes True-Client-IP ou X-Forwarded-For dans la balise <global> :
<remote_addr_headers>
<!-- list headers that contain real client IP if webserver is behind a reverse proxy --> <header1>HTTP_TRUE_CLIENT_IP</header1>
<header2>HTTP_X_FORWARDED_FOR</header2>
</remote_addr_headers>
  • PHP: si votre site web ou application est écrite en PHP, la vraie adresse IP des utilisateurs peut être récupérée en utilisant la variable serveur $_SERVER['HTTP_X_FORWARDED_FOR'].

Blocage IP via .htaccess

Si vous utilisez actuellement un blocage par adresses IP pour un dossier de votre site, il vous suffit de faire la mise à jour suivante :

Order Deny,Allow
Deny from all
Allow from 172.135.135.234
Allow from 172.135.135.235

vers :

Order Deny,Allow
Deny from all
SetEnvIf X-Forwarded-For "^172\.135\.1135\.234" AllowAccess_1
SetEnvIf X-Forwarded-For "^172\.135\.1135\.235" AllowAccess_2
Allow from env=AllowAccess_1
Allow from env=AllowAccess_2

Scénarios utilisant les adresses IP

Voici quelques scénarios pour lesquels vous avez besoin d’utiliser l’adresse IP des utilisateurs sur vos serveurs:

  • Servir du contenu différent en fonction de la localisation des utilisateurs, déterminée par l’adresse IP.
  • Vérifier si les requêtes de session utilisateur proviennent de la même machine. Cette pratique est courante pour les sites web tels que les forums et messageries.
  • Prévenir des abus en bloquant les requêtes quand elles sont nombreuses à provenir d’une même adresse IP.
  • Détecter les fraudes.
  • Analyser les comportements utilisateurs.

Si votre site web est concerné par une des situations ci dessus, nous vous recommandons vivement de changer votre serveur d’origine pour exploiter l’en-tête X-Forwarded-For ou True-Client-IP.

Même si votre serveur n’utilise pas actuellement l’adresse IP des utilisateurs, il est possible que la situation change à l’avenir. Pour cette raison, nous vous recommandons de faire ces changements dans tous les cas. Vous n’encourrez aucun risque à faire ces modifications même si vous n’utilisez pas l’adresse IP des utilisateurs à ce jour.