Aller au contenu

Points d'extension

phil/css-sanitizer

La bibliothèque est en PHP simple et ne déclare aucun service. Ce que choisit une application, c'est la Policy qu'elle donne à l'assainisseur, et un port : où mènent les URL.

UrlRewriter

Phil\CssSanitizer\UrlRewriter : chaque URL d'une feuille de style passe par le réécrivain de la politique, qui renvoie l'URL à écrire ou null pour la refuser. Voir URL.

MéthodeContrat
rewrite(string $url, UrlKind $kind): ?stringPrend l'URL telle qu'elle est écrite, échappements résolus, et ce qu'elle charge — Image, Font ou StyleSheet ; renvoie une URL qui ne charge rien que l'application n'a pas voulu, ou null

Url\RefuseUrls, la valeur par défaut, refuse tout ; Url\AllowedFiles fait correspondre des noms de fichiers à des URL publiques ; Url\CallbackRewriter demande à une fermeture. Un réécrivain propre à l'application ne renvoie jamais une URL javascript: ni une URL d'une autre origine qu'elle n'a pas choisie : l'assainisseur refuse les schémas qui exécutent du code, pas les adresses que l'application permet.

La politique

Policy est une valeur : chaque méthode with en renvoie une nouvelle. Voir Politique.

PointMéthodes
Les propriétés et fonctions permiseswithProperties(), withoutProperties(), withFunctions(), withoutFunctions()
Les sélecteurs permiswithPseudoClasses(), withPseudoElements(), withAttributes() et leurs formes without
Les règles @ permiseswithAtRules(), withoutAtRules(), withMediaTypes()
Où s'appliquent les règleswithScope() : chaque sélecteur reçoit un préfixe, pour qu'une feuille stylise une partie d'une page
!important et propriétés personnaliséeswithImportant(), withCustomProperties()
Les bornes du travailwithMaxLength(), withMaxDepth(), withMaxNesting()

Ce que liste Jamais permis n'est accessible par aucune d'elles.

Le validateur

Validator\SafeCss utilise le CssSanitizer donné à SafeCssValidator. Une déclaration de service avec la politique de l'application remplace celle par défaut, qui refuse toutes les URL ; voir Validateur.