2017-04-17 43 views
0

我完全理解,出於安全原因和防止XSS攻擊,用戶輸入必須進行消毒: 消毒來自文本字段或輸入字段的輸入。爲什麼Angular2會在組件中清理腳本標記?

但是,我很難理解Angular從組件模板中刪除腳本元素的原因。

就像是寫在官方文檔:

HTML,屬性和綁定表達式(但不是必然的值)的模板值得信賴的是安全

所以,如果他們是值得信賴是安全的爲什麼腳本標記在編譯時自動刪除?

我可能在這裏錯過了一個安全問題,但即使在閱讀有關XSS的文檔之後,我也不明白Angular組件編譯的Angular組件模板中的腳本標記如何危及安全性。

有沒有人在這裏有答案?

回答

0

想想這樣:當你編寫一個Angular模板時,Angular編譯器讀取該模板並創建一個優化的JavaScript表示,該模板正在做什麼,並將該優化的javascript提供給瀏覽器。

所以,在瀏覽器抓住你的模板的時候,它實際上已經不再是HTML了 - 它只是javascript。因此,當前不支持從其他位置動態加載外部,未知和可能不安全的JavaScript。

+0

好的,我沒有看到這個角度的問題,謝謝。 我也不知道它是不可能動態創建一個具有特定外部src屬性的腳本標記 – Clement

相關問題