Je pense que les utilisateurs peuvent télécharger un fichier css et contrôler les couleurs et d'autres éléments du site selon leur propre configuration. Donc, avant de le construire, je voudrais savoir ce que je devrais faire attention?Que faut-il faire si nous devons utiliser un fichier css inconnu?
Répondre
Une injection CSS est presque aussi bonne qu'une injection de script. Vous avez expression()
dans IE6-7 (et plus tard dans la vue de compatibilité), vous avez behavior:
(HTC) dans IE, vous avez -moz-binding:
dans Firefox, vous avez content:
pour injecter du texte, et parfois, surtout dans les anciens navigateurs qui ne le bloquent pas, vous avez url(javascript:...)
. Même sans ceux-ci, vous avez beaucoup de risques, juste de l'usurpation visuelle de l'interface utilisateur.
Tant que la feuille de style utilisateur est limitée à l'utilisateur qui l'a créé, un utilisateur ne peut que se compromettre. Le problème survient lorsque les utilisateurs commencent à partager des feuilles de style. Vous pourriez peut-être interdire aux utilisateurs de choisir la même adresse de feuille de style externe qu'un autre utilisateur pour la décourager.
Sécurité: Les soi-disant "CSS Expressions" autorisent le code JavaScript en CSS. Bien qu'ils soient désormais obsolètes, ils fonctionnent toujours dans IE5-7 et dans les modes de compatibilité IE.
Je recommande de retirer toute règle expression()
de la feuille de style. Il ne sert à rien, ne fonctionne pas dans les navigateurs normaux et dans IE, il introduit du code exécutable dans CSS.
Que comptez-vous faire avec le fichier une fois téléchargé? Le montrer dans un style de grille? –
duplication possible de [injection de css, quel est le pire qui peut arriver?] (Http://stackoverflow.com/questions/718611/css-injection-whats-the-worst-that-can-happen) – Artefacto
Si le CSS est pour la consommation de l'utilisateur qui le définit * seulement *, il n'y a pas de problème. Si elles sont partagées ... voir le lien ci-dessus. – Artefacto