
h2t (HTTP Hardening Tool) scanne un site web et suggère des en-têtes de sécurité à appliquer
h2t est un outil simple pour aider les administrateurs systèmes à durcir leurs sites web.
Jusqu'à présent, h2t vérifie les en-têtes du site web et recommande comment les améliorer.
$ git clone https://github.com/gildasio/h2t
$ cd h2t
$ pip install -r requirements.txt
$ ./h2t.py -h
... ou avec Docker :
$ git clone https://github.com/gildasio/h2t
$ cd h2t
$ docker build -t h2t .
$ docker run --rm h2t -h
Vous pouvez aussi mettre alias h2t='docker run --rm h2t' dans un fichier (comme ) et l'exécuter ainsi :
~/.bash_aliases$ h2t -h
h2t possède des sous-commandes : list et scan.
$ ./h2t.py -h
usage: h2t.py [-h] {list,l,scan,s} ...
h2t - Outil de Durcissement HTTP
positional arguments:
{list,l,scan,s} aide de la sous-commande
list (l) affiche une liste des en-têtes disponibles dans le catalogue h2t (pouvant
être utilisés dans la sous-commande scan avec l'option -H)
scan (s) analyse une URL pour durcir les en-têtes
optional arguments:
-h, --help affiche ce message d'aide et quitte
La sous-commande list liste tous les en-têtes catalogués dans h2t et peut afficher des informations à leur sujet comme une description, des liens pour plus d'informations et des guides pratiques.
$ ./h2t.py list -h
usage: h2t.py list [-h] [-p PRINT [PRINT ...]] [-B]
[-a | -H HEADERS [HEADERS ...]]
optional arguments:
-h, --help affiche ce message d'aide et quitte
-p PRINT [PRINT ...], --print PRINT [PRINT ...]
une liste d'informations supplémentaires sur les en-têtes à
afficher. Pour l'instant, deux options : description et
refs (vous pouvez utiliser l'une, l'autre ou les deux)
-B, --no-banner n'affiche pas la bannière h2t
-a, --all liste tous les en-têtes disponibles [par défaut]
-H HEADERS [HEADERS ...], --headers HEADERS [HEADERS ...]
une liste d'en-têtes à rechercher dans le catalogue h2t
La sous-commande scan effectue une analyse d'un site web en examinant ses en-têtes.
$ ./h2t.py scan -h
usage: h2t.py scan [-h] [-v] [-a] [-g] [-b] [-H HEADERS [HEADERS ...]]
[-p PRINT [PRINT ...]]
[-i IGNORE_HEADERS [IGNORE_HEADERS ...]] [-B] [-E] [-n]
[-u USER_AGENT] [-r | -s]
url
positional arguments:
url URL à analyser
optional arguments:
-h, --help affiche ce message d'aide et quitte
-v, --verbose augmente la verbosité de la sortie : -v affiche les en-têtes de réponse,
-vv affiche les en-têtes de réponse et de requête
-a, --all analyse tous les en-têtes catalogués [par défaut]
-g, --good analyse uniquement les bons en-têtes
-b, --bad analyse uniquement les mauvais en-têtes
-H HEADERS [HEADERS ...], --headers HEADERS [HEADERS ...]
analyse uniquement ces en-têtes (voir disponibles dans la sous-commande
list)
-p PRINT [PRINT ...], --print PRINT [PRINT ...]
une liste d'informations supplémentaires sur les en-têtes à
afficher. Pour l'instant, deux options : description et
refs (vous pouvez utiliser l'une, l'autre ou les deux)
-i IGNORE_HEADERS [IGNORE_HEADERS ...], --ignore-headers IGNORE_HEADERS [IGNORE_HEADERS ...]
une liste d'en-têtes à ignorer dans les résultats
-B, --no-banner n'affiche pas la bannière h2t
-E, --no-explanation n'affiche pas l'explication de la sortie h2t
-o {normal,csv,json}, --output {normal,csv,json}
choisir le format de sortie (disponibles : normal,
csv, json)
-n, --no-redirect ne pas suivre les redirections HTTP
-u USER_AGENT, --user-agent USER_AGENT
définir le user agent pour la requête d'analyse
-k, --insecure ne pas vérifier la validité du certificat SSL
-r, --recommendation afficher uniquement les recommandations [par défaut]
-s, --status afficher l'état réel (par exemple : uniquement les en-têtes existants)
Pour l'instant, la sortie est uniquement en mode normal. Comprenez-la ainsi :
-s.Exemple :






Pour les directives de contribution, consultez CONTRIBUTING