Special HTTP headers
Listes de mots et outils
En-têtes pour changer l'emplacement
Réécrire l'IP source :
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
X-Original-URL: 127.0.0.1
Client-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
Via: 1.0 fred, 1.1 127.0.0.1
Connection: close, X-Forwarded-For
(Vérifiez les en-têtes hop-by-hop)
Réécrire l'emplacement :
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
En-têtes hop-by-hop
Un en-tête hop-by-hop est un en-tête conçu pour être traité et consommé par le proxy gérant actuellement la requête, par opposition à un en-tête de bout en bout.
Connection: close, X-Forwarded-For
Contrebande de requêtes HTTP
Content-Length: 30
Transfer-Encoding: chunked
En-têtes de cache
En-têtes de cache serveur :
X-Cache
dans la réponse peut avoir la valeurmiss
lorsque la requête n'était pas mise en cache et la valeurhit
lorsqu'elle est mise en cacheComportement similaire dans l'en-tête
Cf-Cache-Status
Cache-Control
indique si une ressource est mise en cache et quand la ressource sera à nouveau mise en cache :Cache-Control: public, max-age=1800
Vary
est souvent utilisé dans la réponse pour indiquer des en-têtes supplémentaires traités comme partie de la clé de cache même s'ils ne sont normalement pas clés.Age
définit en secondes le temps pendant lequel l'objet a été dans le cache du proxy.Server-Timing: cdn-cache; desc=HIT
indique également qu'une ressource a été mise en cache
En-têtes de cache local :
Clear-Site-Data
: En-tête pour indiquer le cache qui doit être supprimé :Clear-Site-Data: "cache", "cookies"
Expires
: Contient la date/heure à laquelle la réponse doit expirer :Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
identique àCache-Control: no-cache
Warning
: L'en-tête HTTP généralWarning
contient des informations sur d'éventuels problèmes avec le statut du message. Plus d'un en-têteWarning
peut apparaître dans une réponse.Warning: 110 anderson/1.3.37 "Response is stale"
Conditionnels
Les requêtes utilisant ces en-têtes :
If-Modified-Since
etIf-Unmodified-Since
ne renverront des données que si l'en-tête de réponseLast-Modified
contient une heure différente.Les requêtes conditionnelles utilisant
If-Match
etIf-None-Match
utilisent une valeur Etag pour que le serveur Web envoie le contenu de la réponse si les données (Etag) ont changé. L'Etag est extrait de la réponse HTTP.La valeur Etag est généralement calculée en fonction du contenu de la réponse. Par exemple,
ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
indique que l'Etag est le Sha1 de 37 octets.
Demandes de plage
Accept-Ranges
: Indique si le serveur prend en charge les demandes de plage, et si c'est le cas, dans quelle unité la plage peut être exprimée.Accept-Ranges: <unité-de-plage>
Range
: Indique la partie d'un document que le serveur doit renvoyer.If-Range
: Crée une demande de plage conditionnelle qui n'est satisfaite que si l'Etag ou la date donnée correspond à la ressource distante. Utilisé pour empêcher le téléchargement de deux plages à partir de versions incompatibles de la ressource.Content-Range
: Indique où dans un message complet un message partiel appartient.
Informations sur le corps du message
Content-Length
: La taille de la ressource, en nombre décimal d'octets.Content-Type
: Indique le type de média de la ressourceContent-Encoding
: Utilisé pour spécifier l'algorithme de compression.Content-Language
: Décrit la ou les langues humaines destinées au public, permettant ainsi à un utilisateur de différencier selon sa propre langue préférée.Content-Location
: Indique un emplacement alternatif pour les données renvoyées.
D'un point de vue de test d'intrusion, ces informations sont généralement "inutiles", mais si la ressource est protégée par un 401 ou 403 et que vous pouvez trouver un moyen de récupérer ces informations, cela pourrait être intéressant.
Par exemple, une combinaison de Range
et Etag
dans une requête HEAD peut divulguer le contenu de la page via des requêtes HEAD :
Une requête avec l'en-tête
Range: bytes=20-20
et avec une réponse contenantETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
divulgue que le SHA1 de l'octet 20 estETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y
Informations sur le serveur
Server: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
Contrôles
Allow
: Cet en-tête est utilisé pour communiquer les méthodes HTTP qu'une ressource peut gérer. Par exemple, il peut être spécifié commeAllow: GET, POST, HEAD
, indiquant que la ressource prend en charge ces méthodes.Expect
: Utilisé par le client pour transmettre les attentes que le serveur doit satisfaire pour que la requête soit traitée avec succès. Un cas d'utilisation courant implique l'en-têteExpect: 100-continue
, qui indique que le client a l'intention d'envoyer une charge utile de données importante. Le client attend une réponse100 (Continue)
avant de poursuivre la transmission. Ce mécanisme aide à optimiser l'utilisation du réseau en attendant la confirmation du serveur.
Téléchargements
L'en-tête
Content-Disposition
dans les réponses HTTP indique si un fichier doit être affiché en ligne (dans la page web) ou traité comme une pièce jointe (téléchargé). Par exemple :
En-têtes de sécurité
Politique de sécurité du contenu (CSP)
Types de confiance
En imposant les Trusted Types via CSP, les applications peuvent être protégées contre les attaques XSS DOM. Les Trusted Types garantissent que seuls des objets spécifiquement conçus, conformes aux politiques de sécurité établies, peuvent être utilisés dans des appels d'API web dangereux, sécurisant ainsi le code JavaScript par défaut.
X-Content-Type-Options
Ce header empêche le sniffing de type MIME, une pratique qui pourrait entraîner des vulnérabilités XSS. Il garantit que les navigateurs respectent les types MIME spécifiés par le serveur.
X-Frame-Options
Pour lutter contre le clickjacking, cet en-tête restreint la manière dont les documents peuvent être intégrés dans les balises <frame>
, <iframe>
, <embed>
, ou <object>
, recommandant à tous les documents de spécifier explicitement leurs autorisations d'intégration.
Politique de ressources entre origines (CORP) et partage de ressources entre origines (CORS)
CORP est crucial pour spécifier quelles ressources peuvent être chargées par les sites web, atténuant les fuites entre sites. CORS, en revanche, permet un mécanisme de partage de ressources entre origines plus flexible, assouplissant la politique de même origine dans certaines conditions.
Politique d'intégration d'origine croisée (COEP) et Politique d'ouverture d'origine croisée (COOP)
COEP et COOP sont essentiels pour activer l'isolation entre les origines croisées, réduisant considérablement le risque d'attaques de type Spectre. Ils contrôlent le chargement des ressources d'origine croisée et l'interaction avec les fenêtres d'origine croisée, respectivement.
HTTP Strict Transport Security (HSTS)
Enfin, HSTS est une fonctionnalité de sécurité qui oblige les navigateurs à communiquer uniquement avec les serveurs via des connexions HTTPS sécurisées, améliorant ainsi la confidentialité et la sécurité.
Références
Last updated