簡體   English   中英

那是否意味着angular2不建議在服務器端進行渲染

[英]Would that mean angular2 doesn't suggest rendering in server side

我知道angular2可以在服務器端渲染(即使我不知道有什么好處),我確實看到了angular2服務器端的示例。

Angular 2通用入門

但是,angular2官方似乎並不建議這樣做。

來自angular2 doc的 服務器端XSS保護

服務器上構造的HTML容易受到注入攻擊。 將模板代碼注入到Angular應用程序中與將可執行代碼注入到應用程序中相同。 它使攻擊者可以完全控制該應用程序。 為防止這種情況,請確保使用自動轉義值的模板語言以防止服務器上的XSS漏洞。 不要在服務器端使用模板語言生成Angular模板,這會帶來引入模板注入漏洞的高風險。

怎么理解呢?

XSS可能是由用戶提供的數據添加到DOM引起的。

這不是服務器端渲染的目的。 服務器端渲染是關於在服務器上執行Angular2應用程序,緩存結果並將結果DOM發送給客戶端,以便客戶端進行的初始化工作更少,並且可以在更短的時間內完成初始渲染。

可能會導致用戶提供的數據,如果你的Angular2應用程序代碼做這個被添加到DOM。 Angular2確實清除了添加的HTML,以防止在服務器上呈現時也發生XSS。 如果通過使用DomSanitizationService將字符串標記為安全字符串來防止這種情況,則您再次容易受到XSS攻擊。

不要在服務器端使用模板語言生成Angular模板,這會帶來引入模板注入漏洞的高風險。

僅僅依靠Angular 2清理HTML來防止XSS是不夠的。 對手可以將Angular表達式(例如{{1==1}} )注入服務器端模板。 {{1==1}}可能是一個無害的示例,但請查看示例以獲取用戶的身份驗證令牌。 這就是為什么在服務器上生成Angular模板很危險的原因。 您必須確保對手不能注入惡意的Angular表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM