[英]ElementRef and @ViewChild, is not recommended?
我是 Angular 新手,我試圖理解:
指令@ViewChild 在沒有 Elementref 的情況下有什么用?
Elementref 直接訪問 DOM? 還是虛擬DOM?
為什么 angular 團隊會說:“允許直接訪問 DOM 會使您的應用程序更容易受到 XSS 攻擊。” 這意味着 Vanila JS 是危險的,因為聲稱:JavaScript 訪問 DOM?
ViewChild
是一個屬性裝飾器,可幫助您注入對組件或 DOM 引用的引用。
在你的情況下,你關心的是后者。 ElementRef
包裝了對 DOM 元素的引用。
Angular 提供了用於 DOM 操作的工具——比如Renderer
帶有內置的清理機制,如果你使用ElementRef
來修改 DOM,你需要處理你自己的清理機制(因為你繞過了 Angular DOM 清理)以避免 XSS 攻擊。 如果您不修改 DOM,那么設計就是安全的。
我不同意直接使用 DOM 冒 XSS 攻擊的風險。
畢竟, Angular 運行時正在這樣做! 此外,無論是從客戶端單獨擁有的服務器提供給瀏覽器的任何內容。 沒有什么可以在服務器和瀏覽器之間進行調解。
那時(第 2 點),您在服務器完整性方面遇到了更大的問題。 重點是,直接修改 dom 是每個網站所做的(DOM 解析 html),而 Angular 運行時則廣泛地執行此操作,因為它構建每個元素而不是 DOM 解析 html 表。
我知道很多人會為此向我發火。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.