2011-11-08 16 views
1

我在使用Rails的骨幹呈現內容。我從模型中獲得的一些json屬性將是html屬性,其中一些可能在javascript內部使用,另一些將在html元素之間插入。所有這些需要不同的逃避機制,人們如何處理這個問題?XSS在Rails的JSON

回答

1

在我們的項目中,我們使用的是doT templates(其中大多數其他)允許使用編碼插值({{! ... }})。你也可以嘗試編碼所有數據並去掉任何可能的javascripts服務器端數據保存時100%確定你不會得到任何惡意的東西

另外,如果你使用的是jquery方法,記得用text方法來插入數據而不是html,因爲文本會自動對其進行編碼。

我真的推薦的點!這是超級快,我們已經成功地使其發揮真的很好用requirejs

+0

我使用EJS + JST與骨幹。文本是否在每個上下文中正確轉義? – CamelCamelCamel

+1

EJS ===最慢的JS模板以往 - 我們已經從切換(和JMVC)至(骨幹+)點 - 速度差異是巨大的(檢查http://jsperf.com/dom-vs-innerhtml-based-templating/73)!現在沒有任何問題 - 儘管我想你可以使用相同的模板來使用服務器端和客戶端渲染 - 我們的項目中只有客戶端渲染。 –

+0

謝謝。我其實很討厭這個ejs.jst,希望只使用_.template。我正在讀關於doT。有關與骨幹網融合的任何信息? – CamelCamelCamel