Question

Je souhaite autoriser les utilisateurs de mes applications Web à enregistrer du code CSS personnalisé via un champ de texte afin de modifier l'aspect de leur interface graphique.

Je suppose qu’il existe des bidouilles CSS pervers. De quoi dois-je m'occuper?

Était-ce utile?

La solution

Une solution serait que vous fournissiez aux utilisateurs des options via un éditeur, leur permettant de choisir la couleur / la taille de divers éléments. Générez ensuite le CSS vous-même en fonction des options fournies par l'utilisateur.

Ceci éviterait que tout CSS non standard ou CSS que vous ne souhaitez pas utiliser soit enregistré.

Autres conseils

Il y a exactement une chose à laquelle je pouvais penser: les expressions CSS (qui ne sont toutefois évaluées que dans IE). Celles-ci autorisant JavaScript dans les fichiers CSS, je décoifferais quelque chose comme

property: expression(...);

ou simplement lancer un " Pas autorisé " erreur.

Mais si vous remettez le code CSS à l'utilisateur qui l'a mis en place, il en est responsable, s'il introduit lui-même une vulnérabilité XSS.

Dans les autres cas: utilisez la solution de Zeus.

Si vous autorisez les utilisateurs à inclure directement du code CSS personnalisé sur votre site, vous demandez aux pirates de le prendre en charge. Vous rendez en réalité le système de thèmes moins utilisable, car seules les personnes connaissant CSS peuvent le faire. À moins que votre site ne soit spécifiquement destiné aux programmeurs basés sur le Web, il est probablement préférable de créer un ensemble de thèmes parmi lesquels les utilisateurs peuvent choisir.

Vous pouvez également créer sur votre site un ensemble d’outils permettant à l’utilisateur de modifier des styles spécifiques sur la page via une interface utilisateur et non directement via CSS. Cela permettra à davantage d'utilisateurs de styliser leurs pages de manière plus flexible, mais cela prend généralement plus de temps de développement - à moins que vous n'utilisiez un CMS, et que votre CMS permet cette fonctionnalité facilement dans le noyau ou dans un plugin.

J'espère que cela vous aidera.

Parmi les propos tenus, vérifiez s'ils sont valides - CSS: http: //jigsaw.w3. org / css-validator /

Bien que je préfère la réponse de Zeus, vous pouvez utiliser un analyseur CSS (recherchez SO, il y a diverses questions) et comparer toutes les entrées à une liste de propriétés approuvées ( couleur , arrière-plan , etc.).

Si vos utilisateurs ne peuvent modifier que leur propre CSS et non celui d'autres utilisateurs, quel est le risque? Le CSS ne leur sera servi que, donc dans le pire des cas, ils pourront se pirater, non?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top