Documentation · Chapitre 08

Donner au navigateur
des limites explicites.

Les en-têtes de sécurité demandent au navigateur de refuser certains comportements risqués avant même que la page ne les utilise.

Nous sécurisons reading-list par couches, sans prétendre qu’une seule option suffit.

SecurityHeadersMiddleware est activé par défaut

phpaml — zsh
"middlewares": [
  "PHPAML\\Middleware\\SecurityHeadersMiddleware"
]

Le middleware entoure la réponse afin que les protections soient présentes même sur les pages d’erreur.

Ce que les principaux en-têtes imposent

Content-Security-Policysources autorisées pour scripts, styles, formulaires et objets
X-Frame-Options: DENYinterdit l’intégration dans une frame
X-Content-Type-Optionsempêche de deviner un autre type de fichier
Referrer-Policylimite les informations d’adresse transmises
Permissions-Policydésactive caméra, micro et géolocalisation
HSTSforce HTTPS sur une requête déjà sécurisée

Pourquoi un nonce pour les scripts ?

PHPAML génère une valeur imprévisible pour chaque réponse. La CSP autorise seulement les scripts provenant du site ou portant ce nonce. Cela réduit l’exécution d’un script injecté sans autoriser globalement unsafe-inline.

État actuel des styles

AML View produit encore certains attributs style de confiance. La CSP autorise donc temporairement unsafe-inline pour les styles, tandis que les scripts restent protégés par nonce.