Ensemble de scripts Ruby pour vérifier le comportement d'un frontal web (headers, redirections, certificat SSL/TLS, ...)
Go to file
Jérémy Lecour 979f3563f6 Tests plus faciles à manipuler 2017-02-01 23:32:41 +01:00
test Tests plus faciles à manipuler 2017-02-01 23:32:41 +01:00
vendor Commit initial 2016-04-28 18:11:22 +02:00
README.md formattage 2016-04-28 22:53:38 +02:00
gems.locked Commit initial 2016-04-28 18:11:22 +02:00
gems.rb Commit initial 2016-04-28 18:11:22 +02:00

README.md

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.

Installation

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.

Exécution

Partie "sécurité" :

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.

test_certificate_level

Permet de vérifier la conformité avec un des niveaux normalisés proposés par Mozilla (https://wiki.mozilla.org/Security/Server_Side_TLS)

test_certificate

Vérifie la validité du certificat

test_accepts_tls_v1

Vérifie que le serveur accepte bien des connexions TLS v1

test_refuse_ssl_v3

Vérifie que le serveur refuse bien des connexions SSL v3

test_hsts_header

Vérifie la présence de l'en-tête HTTP HTTP-Strict-Transport-Security.

Partie "redirections" :

bundle exec ruby -Itest test/domain_redirects_test.rb

test_redirections

Vérifie que les redirections attendues aient bien lieu.

test_http_codes

Vérifie que les codes HTTP attendus soient bien reçus.

Partie "assets accessibility"

bundle exec ruby -Itest test/assets_accessibility_test.rb

test_rss_feeds

Vérifie la présence de flux RSS sur la page et leur fonctionnement.

test_head_stylelsheets

Vérifie la présence de CSS, qu'elles sont bien accessibles, et que leurs en-têtes HTTP les rendent cachables.

test_head_scripts

Vérifie la présence de JS, qu'ils sont bien accessibles, et que leurs en-têtes HTTP les rendent cachables.

test_images

Vérifie que toutes images de la page sont bien accessibles et cachables.

test_https_src

Vérifie que toutes les balises avec attribut src sont bien en HTTPS.

test_cors

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.