2016-04-28 18:11:22 +02:00
|
|
|
Il s'agit d'un ensemble de scripts, de type "tests unitaires" permettant de valider le comportement d'un service web, du point de vue d'un client web.
|
|
|
|
|
2016-04-28 22:51:52 +02:00
|
|
|
# Installation
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Au minimum il faut Ruby pour l'exécution des scripts.
|
|
|
|
|
|
|
|
Il faut également :
|
|
|
|
|
|
|
|
- OpenSSL
|
|
|
|
- Python 2
|
|
|
|
- Bash (>= 4)
|
|
|
|
- coreutils
|
|
|
|
|
|
|
|
Une fois Ruby installé, depuis le dossier du projet :
|
|
|
|
|
|
|
|
bundle install
|
|
|
|
|
|
|
|
Ça va installer localement des paquets Ruby nécessaires.
|
|
|
|
|
2016-04-28 22:51:52 +02:00
|
|
|
# Exécution
|
2016-04-28 18:11:22 +02:00
|
|
|
|
2016-04-28 22:51:52 +02:00
|
|
|
## Partie "sécurité" :
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
bundle exec ruby -Itest test/secrity_test.rb
|
|
|
|
|
|
|
|
Il est possible d'utiliser un certificat SSL racine stocké en local (`test/certs/_my_cert.pem`) et paramétré dans la méthode `root_certificate`.
|
|
|
|
|
|
|
|
Il est possible d'utiliser un binaire `open_ssl` personnalisé, géré dans la méthode `openssl_path`.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_certificate_level`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Permet de vérifier la conformité avec un des niveaux normalisés proposés par Mozilla (https://wiki.mozilla.org/Security/Server_Side_TLS)
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_certificate`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Vérifie la validité du certificat
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_accepts_tls_v1`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Vérifie que le serveur accepte bien des connexions TLS v1
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_refuse_ssl_v3`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Vérifie que le serveur refuse bien des connexions SSL v3
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_hsts_header`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Vérifie la présence de l'en-tête HTTP `HTTP-Strict-Transport-Security`.
|
|
|
|
|
2016-04-28 22:51:52 +02:00
|
|
|
## Partie "redirections" :
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
bundle exec ruby -Itest test/domain_redirects_test.rb
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_redirections`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Vérifie que les redirections attendues aient bien lieu.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_http_codes`
|
2016-04-28 18:11:22 +02:00
|
|
|
|
|
|
|
Vérifie que les codes HTTP attendus soient bien reçus.
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
## Partie "assets accessibility"
|
|
|
|
|
|
|
|
bundle exec ruby -Itest test/assets_accessibility_test.rb
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_rss_feeds`
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
Vérifie la présence de flux RSS sur la page et leur fonctionnement.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_head_stylelsheets`
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
Vérifie la présence de CSS, qu'elles sont bien accessibles, et que leurs en-têtes HTTP les rendent cachables.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_head_scripts`
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
Vérifie la présence de JS, qu'ils sont bien accessibles, et que leurs en-têtes HTTP les rendent cachables.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_images`
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
Vérifie que toutes images de la page sont bien accessibles et cachables.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_https_src`
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
Vérifie que toutes les balises avec attribut `src` sont bien en HTTPS.
|
|
|
|
|
2016-04-28 22:53:38 +02:00
|
|
|
`test_cors`
|
2016-04-28 22:51:52 +02:00
|
|
|
|
|
|
|
Vérifie les en-têtes CORS sur la feuille de style et toutes les polices web qu'elle référence.
|
|
|
|
|
|
|
|
## Partie "cookies"
|
|
|
|
|
|
|
|
bundle exec ruby -Itest test/cookies_test.rb
|
|
|
|
|
|
|
|
`test_no_session_on_pages`
|
|
|
|
|
|
|
|
Vérifie que certaines pages ne poussent pas de cookies.
|
|
|
|
|
|
|
|
`test_session_on_pages`
|
|
|
|
|
|
|
|
Vérifie que certaines pages poussent bien un cookie.
|
|
|
|
|
|
|
|
## Partie "cache HTTP"
|
|
|
|
|
|
|
|
bundle exec ruby -Itest test/http_cache_test.rb
|
|
|
|
|
|
|
|
`test_varnish_hit`
|
|
|
|
|
|
|
|
Vérifie que certaines pages sont bien servies puis mises en cache par Varnish.
|
|
|
|
|
|
|
|
`test_homepage_first_visit`
|
|
|
|
|
|
|
|
Vérifie que certaines pages ont des en-têtes corrects pour le cache public.
|
|
|
|
|
|
|
|
`test_homepage_second_visit`
|
|
|
|
|
|
|
|
Vérifie que certaines pages rechargées en transmettant les infos de cache reçoivent une réponse "304".
|
|
|
|
|
|
|
|
`test_login_first_visit`
|
|
|
|
|
|
|
|
Vérifie que certaines pages ne soient pas mises en cache.
|