Est-il possible d’empoisonner l’en-tête de l’hôte dans un tel cas?

L’équipe de Django considère que l’empoisonnement d’en-tête d’hôte (CVE-2011-4139 et CVE-2012-4520) constitue un problème de sécurité qui doit être résolu au niveau de la structure. Pyramid, par exemple (c’est-à-dire son wrapper-webob de requête de bas niveau sous-jacent), ne considère pas cela comme un problème.

Sur les machines de production et de développement, j’ai nginx qui semble avoir correctement passé SERVER_NAME même si l’en-tête Host contient des erreurs complètes et répond avec 444 No response s’il n’y a pas de server_name correspondant.

Question: devrais-je m’inquiéter de l’empoisonnement de l’en-tête de l’ Host dans ce cas, si j’utilise SERVER_NAME pour créer des URL absolues?

Si vous utilisez nginx pour nettoyer les champs HTTP_HOST et SERVER_NAME, vous faites ce qu’il faut et vous n’avez pas à vous soucier de l’imbrication de l’en-tête de l’hôte.

Comme Django, Pyramid considère qu’une grande partie de cette tâche relève de l’environnement hôte WSGI. Et nginx fait un excellent travail de nettoyage des informations de requête HTTP.