我正在構建一個Backbone.js應用程序,並且想知道在使用Backbone.js時處理XSS和HTML轉義的最佳方式是什麼。Backbone.js和XSS/HTML轉義
在官方Backbone.js文檔的基本中,數據不會被轉義。由於該數據在模板用於呈現待辦事項條目,也能夠通過輸入以下文本執行JavaScript代碼(可以在上面的鏈接被再現):
"><script>alert('xss');</script>
當使用REST服務器作爲存儲後端,這個XSS對每個用戶都是持久的。
你如何解決這個問題?
我的想法是轉義服務器上的數據,以便返回的數據安全地在模板中使用。那麼我是否必須始終使用wait: true
,以確保未呈現未轉義的數據?爲了編輯,添加另一個屬性與非轉義數據,然後可以用來填充文本字段使用.val()
?
還是你沒有做到這一點,並在渲染模板之前轉義客戶端上的數據?
模型的轉義函數怎麼樣? http://backbonejs.org/#Model-escape – eveevans
看起來這個例子現在已經修復了。 –