Ich baue eine Backbone.js Anwendung und frage mich, was ist der beste Weg, mit XSS bzw. HTML-Escaping umzugehen, wenn Backbone.js verwenden.Backbone.js und XSS/HTML entkommen
In der grundlegenden Todos example application aus der offiziellen Backbone.js-Dokumentation werden die Daten nicht maskiert. Da diese Daten in der Vorlage verwendet wird, um die To-do-Einträge zu machen, ist es möglich, Javascript-Code durch Eingabe der folgenden Text (kann oben an der Verbindung wiedergegeben werden) auszuführen:
"><script>alert('xss');</script>
Bei Verwendung eines REST-Server Als Speicher-Backend ist dieses XSS für jeden Benutzer persistent.
Wie lösen Sie dieses Problem?
Meine Idee ist es, die Daten auf dem Server zu entkommen, so dass die dann zurückgegebenen Daten sicher in einer Vorlage verwendet werden können. Muss ich dann immer wait: true
verwenden, um sicherzustellen, dass keine nicht-gescannten Daten gerendert werden? Fügen Sie zur Bearbeitung ein weiteres Attribut mit den nicht gescannten Daten hinzu, mit denen Sie dann das Textfeld mit .val()
füllen können?
Oder tun Sie nichts davon und entkommen die Daten auf dem Client, bevor die Vorlage gerendert?
Was ist mit der Escape-Funktion für Modelle? http://backbonejs.org/#Model-escape – eveevans
Sieht aus wie das Beispiel jetzt behoben wurde. –