Wie wir alle wissen, sind XSS-Angriffe gefährlich und sehr einfach durchzuführen . Verschiedene Frameworks erleichtern das Codieren von HTML-Code, wie dies in ASP.NET MVC der Fall ist:
<%= Html.Encode("string"); %>
Aber was passiert, wenn Ihr Client verlangt, dass er seinen Inhalt direkt aus einem Microsoft Word-Dokument hochladen kann?
Hier ist das Szenario: Benutzer können Inhalte aus Microsoft Word in einen WYSIWYG-Editor (in diesem Fall tinyMCE ) kopieren und einfügen. Diese Informationen werden dann auf einer Webseite veröffentlicht.
Die Website ist öffentlich, aber nur Mitglieder dieser Organisation können Informationen auf einer Webseite veröffentlichen.
Wie gehe ich sicher mit diesen Anforderungen um? Momentan wird nicht überprüft, was der Client veröffentlicht (da nur "vertrauenswürdige" Benutzer veröffentlichen können), aber ich bin nicht besonders zufrieden damit und würde es gerne weiter sperren, falls ein Konto gehackt wird.
Die einzige konzeptionelle Methode, von der ich weiß, dass sie diese Anforderungen erfüllt, besteht darin, HTML-Tags auf die Whitelist zu setzen und sie durchzulassen . Gibt es eine andere Art und Weise? Wenn nicht, wie kann der Benutzer Eingaben in beliebiger Form in der Datenbank speichern, aber nur korrekt codiert anzeigen und fehlerhafte Tags entfernen?