Ich habe eine Webanwendung, mit der ich Endbenutzern erlauben möchte, das Aussehen der Website anzupassen, indem sie ihre eigene CSS-Datei hochladen.
Gibt es Sicherheitsprobleme damit? Ich kann nichts Offensichtliches sehen, dachte aber, ich würde fragen, ob es etwas gibt, das ich vermisst habe.
Javascript kann in CSS ausgeführt werden, Sie müssen sicherstellen, dass Sie eine Filterung verwenden.
Ich habe auch Fälle gesehen, in denen jemand die gesamte Seite einer von Microsoft kontrollierten Website mit einem transparenten Pixel abgedeckt hat und auf eine bösartige Website verlinkt ist. Durch Klicken auf eine beliebige Stelle wurde die Angreifer-Site angezeigt.
Dies könnte jedoch sicher sein, wenn der Benutzer nur sein eigenes CSS sieht, und sie könnten nicht sehen, was jemand anderes gesehen hat. Andernfalls würde eine Art Whitelist oder Markdown funktionieren.
Kurze Antwort: Nein, ist es nicht. HTC in IE und XBL in Mozilla sind beide mögliche Angriffsvektoren. Ein Hack dieser Art wurde verwendet, um 30.000 MySpace Passwörter vor einer Weile zu stehlen.
Quelle: Simon Willison, Web Security Horror Stories
Ich würde es nicht tun, weil CSS ein Bild anzeigen kann, das eine OS-Schwachstelle ausnutzen könnte in Beispiel.
Grüße.
Wenn diese CSS-Dateien für alle Site-Benutzer verfügbar sind und nicht nur für die Person, die sie hochgeladen hat, gibt es eine mögliche XSRF vector - Sie könnten Links zu externen Ressourcen im CSS einfügen, die dem Benutzer, der sie anfordert, "unerwünschte" Effekte zufügen.
Sie können einen Kunden-Support-Overhead erhalten, wenn ein Benutzer mit seinem benutzerdefinierten CSS den Bildschirm in dem Maße verschraubt, dass er die Steuerelemente nicht findet, um ihn zurückzusetzen. In diesem Fall müssen Sie als Administrator es manuell tun.
Für diesen Fall eine mögliche Lösung. Ordnen Sie eine bestimmte Url an, um den Stil zurückzusetzen. Etwas wie:
%Vor%Und Ratschläge für den Benutzer, wenn er den Stil ändern möchte, um sich an diese URL zu erinnern und einfach zu folgen, wenn die Dinge außer Kontrolle geraten sind. Wenn Sie auf klicken, werden die benutzerdefinierten Stile deaktiviert.