J'ai une application Web où j'aimerais permettre aux utilisateurs finaux de personnaliser l'apparence du site Web en téléchargeant leur propre fichier CSS. P>
Y a-t-il des problèmes de sécurité avec cela? Je ne vois rien d'évident mais je pensais que je demanderais au cas où il y avait quelque chose que j'avais manqué. P>
7 Réponses :
JavaScript peut être exécuté dans CSS, vous devez vous assurer que vous utilisez un filtrage. P>
J'ai également vu des incidents où quelqu'un a couvert la page entière sur un site contrôlé Microsoft avec un pixel transparent, reliant à un site malveillant. En cliquant n'importe où a déclenché le site des attaquants pour apparaître. P>
Cela pourrait cependant être en sécurité si l'utilisateur ne voit que son propre CSS, et ils n'auraient aucun moyen de voir ce qu'ils ont fait. Sinon, une sorte de whiteliste ou de marquage fonctionnerait. P>
Eh bien, s'ils modifient leur propre CSS, ils ne pouvaient faire qu'une attaque XSS sur eux-mêmes, pas trop inquiétante :-)
Cela dépend de la structure du site.
Comment JavaScript peut-il être exécuté dans CSS?
Pour cE, il y a la propriété expression.
Il y a aussi des comportements, [- ms-] comportement code> dans IE et -MOZ-Binding dans Firefox.
@Vinko Vrsalovic: Non, non, non, non, non, non, non! Ils ne font pas une attaque XSS sur eux-mêmes, ils font une attaque XSS sur tous ceux qui visitent leur page de profil. De là, ils peuvent voler des mots de passe, des sessions de détournement, peu importe.
Merci à tous, beaucoup de très bonnes réponses ici. Je vais devoir penser à la meilleure façon de permettre la personnalisation, puis de définir des couleurs et des arrière-plans et la création du CSS pourrait suffire
C'est une vieille question, mais je dois demander. Pourquoi Tumblr le fait-il? Ou comment pouvons-ils s'en sortir en toute sécurité?
Vous pouvez obtenir un support client en tête si un utilisateur avec sa CSS personnalisée vis dans la mesure où il ne trouvera pas les commandes pour le réinitialiser. Dans ce cas, vous devez le faire manuellement.
Pour ce cas une solution possible. Organisez une URL spécifique pour réinitialiser le style. Quelque chose comme: p> et conseil à l'utilisateur lorsqu'il est sur le point de modifier le style pour se souvenir de cette URL et de le suivre si les choses se sont déroulées. Lorsqu'il est touché, les styles personnalisés seront désactivés. P> p>
En fait, comme d'autres réponses les ont notées, vous pouvez exécuter JavaScript dans CSS. Slideshare.net/simon/web-security-horror-stories-presentatio n
Selon votre serveur et vos configurations, il peut être possible d'exécuter un code côté serveur à partir d'un fichier CSS (cependant, ce n'est pas un comportement par défaut sur les serveurs que je connais). P>
Réponse courte: non fort>. Les premières mauvaises choses qui viennent à l'esprit sont des expressions msie. P>
Je ne le ferais pas parce que CSS peut afficher une image qui pourrait exploiter une vulnérabilité du système d'exploitation dans l'exemple. P>
Cordialement. P>
Beaucoup moins d'un problème que de script.
Si ces fichiers CSS sont disponibles pour tous les utilisateurs du site, et pas seulement la personne qui a téléchargé, il y a une possible XSRF vecteur - Vous pouvez inclure des liens vers des ressources hors site dans la CSS qui effectuent des effets" indésirables "à l'utilisateur leur demandant. P>
Vous pouvez effectuer beaucoup plus facilement CSRF en incorporant des images bien plus fréquentes pour que les sites Web permettent.
Réponse courte: Non, ce n'est pas le cas. HTC IN IE et XBL à Mozilla sont à la fois des vecteurs d'attaque potentiels. Un hack de cette nature a été utilisé pour voler 30 000 mots de passe myspace un moment de retour. P>
Source: Simon Willison, Histoires d'horreur de la sécurité Web p>