1 — Entrée et sortie
Soumettez un titre vide, puis un titre contenant <script>alert(1)</script>. Le premier doit produire 422 avec une erreur de champ. Le second peut être conservé comme texte, mais ne doit jamais exécuter de script dans la liste.
2 — CSRF
Retirez temporairement csrfField() d’une copie locale du formulaire et envoyez un POST. Attendez 419. Remettez immédiatement le champ : un test de sécurité ne doit pas devenir une régression.
3 — Cookies et en-têtes
curl -I http://127.0.0.1:8910/booksRepérez Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy et Permissions-Policy. Secure et HSTS apparaissent lorsque la requête est réellement HTTPS.
4 — Limitation
Dans un environnement de test uniquement, réduisez limit à 2, envoyez trois POST valides vers le même chemin et confirmez 429 avec Retry-After. Restaurez ensuite 60.
5 — Production
aml test
aml doctor --productionEN RÉSUMÉ
Ce qu’il faut retenir
- Valider et échapper protègent deux étapes différentes.
- CSRF protège les actions utilisant la session.
- Les cookies de session sont HttpOnly et deviennent Secure sous HTTPS.
- La CSP et les autres en-têtes fixent des limites au navigateur.
- La limitation réduit l’abus mais ne remplace jamais les permissions.