Ce qui se passe
Filament v5.9.0, publiée le 26 septembre, peut poser un attribut nonce
sur chaque script qu'elle affiche. Une application qui envoie une Content
Security Policy peut alors retirer 'unsafe-inline' de script-src, la
directive qui laisse passer tout script en ligne, injecté compris.
Comment s'y prendre
La façade FilamentCsp reçoit la fonction qui fournit le nonce de votre
politique, par exemple dans le boot() d'un fournisseur de services :
FilamentCsp::useNonce(static fn (): string => csp_nonce());csp_nonce() désigne ici le nonce généré par votre propre middleware CSP. Il
est résolu une fois par requête. Pour vos gabarits et ceux des plugins,
\Filament\Support\csp_nonce() renvoie la valeur, csp_nonce_html()
l'attribut complet.
Les limites
- Seuls les scripts sont couverts : Livewire, Alpine et TipTap utilisent des
styles en ligne,
style-src 'unsafe-inline'reste donc nécessaire. - Sans configuration, le rendu ne change pas d'un octet.
- Un plugin qui écrit ses propres balises
<script>doit utiliser le nonce : à tester avant de resserrer la politique. - La v4.14.0, sortie le même jour, n'a pas cette option.
Le reste
Les deux branches gagnent des aides de test pour les imports et les exports,
des générateurs de contenu riche et Markdown, enum() sur ImportColumn et
une recherche dans le sélecteur de blocs.
Source : Filament v5.9.0, GitHub, 26 septembre 2026, et PR #20301.