Buduję aplikację Backbone.js i zastanawiam się, jaki jest najlepszy sposób radzenia sobie z XSS lub ucieczką HTML przy użyciu Backbone.js.Backbone.js i XSS/HTML escaping
W podstawowej wersji Todos example application z oficjalnej dokumentacji Backbone.js dane nie są chronione. Ponieważ dane te są wykorzystywane w szablonie do renderowania wpisy todo, możliwe jest wykonanie kodu JavaScript podając następujący tekst (może być powielana w linku powyżej):
"><script>alert('xss');</script>
przypadku korzystania z serwera REST jako zaplecze danych, ten XSS jest trwały dla każdego użytkownika.
Jak rozwiązać ten problem?
Moim pomysłem jest uciec od danych na serwerze, więc zwrócone dane można bezpiecznie wykorzystać w szablonie. Czy muszę zawsze używać wait: true
, aby upewnić się, że nie są renderowane żadne dane z usuniętymi znakami? A do edycji, dodaj kolejny atrybut z nieodwzorcowanymi danymi, które następnie mogą zostać użyte do wypełnienia pola tekstowego przy użyciu .val()
?
A może nic z tego zrobić i uniknąć danych na kliencie, przed renderowaniem szablonu?
Co z funkcją ucieczki dla modeli? http://backbonejs.org/#Model-escape – eveevans
Wygląda na to, że przykład został naprawiony. –