Chaque défaut dans un CMS est une décision prise par quelqu'un. La plupart sont héritées, recopiées d'une base de quinze ans et jamais réexaminées. Ici elles ont d'abord été écrites : ce qu'une requête peut faire, ce qu'une session peut garder, ce qu'un gabarit peut afficher.

Ce que change « strict par défaut »

Une page est rendue à partir de données validées, pas de données espérées. La sortie est échappée sauf si un gabarit demande le contraire, à un seul endroit, exprès. Rien dans une requête n'atteint le système de fichiers sans un nom vérifié contre ce qui existe réellement.

La sécurité n'est pas une option que l'on ajoute. C'est ce qui reste quand on retire tout ce qu'on ne peut pas justifier.

Le résultat : un site qui se comporte pareil au premier jour et au quatre-centième, parce que rien n'a dérivé — aucune mise à jour de plugin n'a changé un comportement, aucun thème n'est allé chercher un script ailleurs.