Aller au contenu

Validateur

phil/css-sanitizer

Validator\SafeCss est une contrainte pour symfony/validator : la valeur, une chaîne ou un Stringable, doit être du CSS que l'assainisseur garde en entier. Chaque retrait listé est une violation, et les retraits au-delà des 100 premiers en font une de plus. null et la chaîne vide sont valides.

use Phil\CssSanitizer\Validator\SafeCss;

final class Theme
{
    #[SafeCss]
    public string $styleSheet = '';

    #[SafeCss(declarations: true)]
    public string $titleStyle = '';
}
OptionValeur par défautSens
declarationsfalseVérifier le contenu d'un attribut style plutôt qu'une feuille de style
messageThis CSS holds {{ removed }} on line {{ line }}: {{ subject }}.Le message de chaque violation
moreMessageThis CSS holds {{ count }} more parts that are not allowed.Le message des retraits au-delà des 100 premiers

Les paramètres de chaque violation sont {{ removed }} (RemovalReason::describe()), {{ subject }}, {{ line }} et {{ reason }} (la valeur de la raison, comme import). La violation des retraits au-delà des 100 premiers a {{ count }} pour seul paramètre et le même nombre pour son pluriel : une source d'un mégaoctet donne au plus 101 violations. Le code est SafeCss::NOT_ALLOWED_ERROR.

La politique est celle du CssSanitizer donné à SafeCssValidator. Sans déclaration de service, la fabrique du validateur le construit avec la politique par défaut, qui refuse toutes les URL. Déclarez-le comme service pour utiliser la politique de l'application, comme le montre Installation.

Un formulaire peut valider avec SafeCss et enregistrer le CSS assaini. Il peut aussi se passer de la contrainte, enregistrer ce que renvoie sanitize() et dire à l'auteur ce qui a été retiré.