2015-01-13 20 views
3

我使用把手,並且如果處理轉義字符(如'),它將在屏幕上呈現爲'把手三重藏匿,以避免逃離html實體

我知道在三重隱藏包裝變​​量會防止這種情況。

我在一個三重存儲器中處理了以下字符串作爲一個快速測試,它似乎很好「<p>hello<p> would not wouldn &#39;噸」這使得我正好想要它的屏幕。

我的問題是,簡單地將所有變量包裝在三重隱藏中是否安全?或者這會有一些我沒有考慮到的無法預料的後果?

感謝

+0

只有當您有預先轉義的變量時纔是安全的。否則包含某種用戶定義數據的變量可能會導致XSS漏洞。 – raidendev

+0

非常感謝 - 許多這方面的工作都是關於Xss攻擊的,所以我很高興接受如果你想讓它變得無聊 – DavidB

回答

12

默認情況下,所有雙藏匿{{var}}嵌入在把手將HTML轉義。這是出於安全原因執行的,以避免DOM XSS漏洞。因爲您的變量可能包含任何數據,包括用戶數據或任何類型的不可信數據。

在某些情況下,您將需要按原樣嵌入數據,而不會轉義。有使用tripple-stash {{{var}}}的地方。但是每次執行此操作時,都需要考慮什麼可能位於您的數據中,您可以信任它嗎?

在Handlebars網站上閱讀關於HTML Escaping的更多信息。