Frage

Ich möchte meine Webapp Benutzern ermöglichen, benutzerdefinierte CSS durch ein Textfeld zu speichern, das Aussehen ihrer GUI zu ändern.

Ich denke, es gibt einige bösen CSS da draußen hacken. Was soll ich aufpassen?

War es hilfreich?

Lösung

Eine Lösung wäre für Sie die Benutzeroptionen durch einige Editor zur Verfügung zu stellen, so dass sie Farbe / Größe der verschiedenen Elemente holen. Dann erzeugen die CSS selbst auf der Grundlage der Optionen der Benutzer zur Verfügung gestellt hat.

Dies würde jede Nicht-Standard-CSS verhindern, oder CSS Sie möchten gespeichert werden nicht verwenden.

Andere Tipps

Es gibt genau eine Sache, die ich denken kann: CSS Ausdrücke (das ist jedoch nur in IE ausgewertet). Diese ermöglichen JavaScript in CSS-Dateien, so würde ich etwas Streifen wie

property: expression(...);

oder einfach ein "Nicht erlaubt" Fehler aus.

Aber dann, wenn Sie die CSS genau liefern wieder den Benutzer, dass es in den ersten Platz in, er ist verantwortlich, wenn er sich eine XSS-Schwachstelle führt.

In jedem anderen Fall. Verwenden Sie Zeus' Lösung

Wenn Sie Benutzern erlauben direkt mit custom-built CSS auf Ihrer Website zu enthalten, Sie fordern für Hacker es zu übernehmen. Sie machen eigentlich die Thematisierung System weniger brauchbar, weil nur Menschen, die CSS wissen können, dies zu tun. Es sei denn, Ihre Website speziell für die Web-basierten Programmierer ist, ist es wahrscheinlich am besten eine Reihe von Themen zu machen, dass die Benutzer aus, anstatt wählen können.

Sie können auch eine Reihe von Tool auf Ihrer Website, die es dem Benutzer ermöglichen, anstatt durch CSS direkt bestimmte Stile auf der Seite über eine Benutzeroberfläche zu ändern. Dies wird mehr Benutzer ermöglichen flexibler ihre Seiten stylen, aber es kommt in der Regel auf Kosten von mehr Entwicklungszeit -., Wenn Sie einen CMS verwenden, und Ihre speziellen CMS ermöglichen diese Funktionalität leicht im Kern oder in einem Plugin

Hope, das hilft.

Unter Dinge, die andere sagte, zu überprüfen, ob sie gültig CSS sind: http: //jigsaw.w3. org / CSS-Validator /

Obwohl ich für Zeus' Antwort gehen würde, könnten Sie einen CSS-Parser (Suche SO, gibt es verschiedene Fragen) und prüfen alle Eingaben gegen eine Liste der zugelassenen Eigenschaften (color, background, etc).

Wenn die Benutzer nur ihre eigenen CSS ändern kann und nicht den einen der anderen Benutzer, was ist das Risiko? Die CSS wird ihnen nur bedient werden, so im schlimmsten Fall, werden sie in der Lage sein, sich selbst zu hacken, nicht wahr?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top