Vorformling Ich arbeite an einer Website und ich möchte einen Benutzer in der Lage, benutzerdefinierte CSS eingeben, die öffentlich angezeigt werden.Wie Whitelist-basierten CSS-Filter in PHP
Da jedoch eine ganze Reihe von XSS-Angriffen über CSS ausgeführt werden können, möchte ich in der Lage sein, einen Weg zu finden, die CSS-Ausgabe zu "säubern", ähnlich wie HTML Purifier durch Parsen des CSS läuft das geparste CSS gegen eine Whitelist und die Ausgabe eines neuen Stylesheets basierend auf dem geparsten CSS und der Whitelist.
Gibt es schon eine solche Bibliothek da draußen? Wenn nicht, gibt es eine CSS-Parsing-Bibliothek, die zum Erstellen einer benutzerdefinierten Implementierung verwendet werden kann?
Ich weiß nicht, von einer solchen Bibliothek, sondern ein CSS-Parser sollte nicht so schwer sein zu implementieren. –
CSS-Parsing ist nicht so einfach wie es aussieht, besonders wenn Sie bestimmte Konstrukte, die von schlechten Browser-Parsern falsch interpretiert werden können, ablehnen müssen. – bobince
Black-Listing ist definitiv schwer, aber White-Listing ist nicht. Und ich sehe nicht, was beim Parsing von CSS so schwierig ist. Es ist keine Programmiersprache und Sie müssen in diesem speziellen Fall nicht etwas darauf basierend wiedergeben. Einige CSS-Konstrukte, die möglicherweise schwerer zu analysieren sind, sind @ -Regeln, aber Sie müssen nicht die vollständige CSS-Spezifikation unterstützen, sondern nur die in der weißen Liste enthaltene Teilmenge. –