Prévenir l’empoisonnement du cache
Cette rubrique explique comment éviter l'empoisonnement du cache si vous utilisez le serveur Web Microsoft Internet Information Server (IIS). L’empoisonnement du cache est une méthode permettant de modifier le contenu du cache afin d’inclure différentes pages du même site. Par exemple, il est possible d’injecter une page d’erreur HTTP 404 (Introuvable) à la place d’une page bénigne (par exemple, la page d’accueil du storefront), ce qui peut entraîner un déni de service potentiel. Les URL des pages malveillantes sont mises en cache par Varnish ou Redis, d’où le nom empoisonnement du cache de page.
Ces types d’attaques peuvent être difficiles à détecter, car ils n’entraînent pas d’erreurs dans les journaux du serveur web.
Cette solution s’applique aux versions de Commerce suivantes :
- 2.0.10 et versions ultérieures
- 2.1.2 et versions ultérieures
Description
Le problème se produit si les réécritures d’URL sont activées sur le serveur IIS et que l’un des en-têtes HTTP suivants est modifié avant que la requête n’atteigne le service de mise en cache de Vernis ou de Redis :
X-Rewrite-UrlX-Original-UrlIIS-wasurlrewrittenUnencoded-URLOrig-path-info
Si ces en-têtes sont modifiés, l’URL et le contenu qui en résultent sont mis en cache, ce qui entraîne des vulnérabilités potentielles.
Solution
Nous proposons la possibilité de supprimer les valeurs de tous les en-têtes précédents en fonction du paramètre du serveur IIS pour Enable_IIS_Rewrites.
- Si
Enable_IIS_Rewritesest défini sur0, les valeurs des en-têtes sont supprimées. - Si
Enable_IIS_Rewritesest défini sur1, les valeurs des en-têtes restent intactes.
Enable_IIS_Rewrites sur 1, vous ne devez pas autoriser la modification des valeurs des en-têtes précédents avant que la requête n'atteigne le serveur Web IIS.