2017-04-17 65 views
0

我完全理解,出于安全原因和防止XSS攻击,用户输入必须进行消毒: 消毒来自文本字段或输入字段的输入。为什么Angular2会在组件中清理脚本标记?

但是,我很难理解Angular从组件模板中删除脚本元素的原因。

就像是写在官方文档:

HTML,属性和绑定表达式(但不是必然的值)的模板值得信赖的是安全

所以,如果他们是值得信赖是安全的为什么脚本标记在编译时自动删除?

我可能在这里错过了一个安全问题,但即使在阅读有关XSS的文档之后,我也不明白Angular组件编译的Angular组件模板中的脚本标记如何危及安全性。

有没有人在这里有答案?

回答

0

想想这样:当你编写一个Angular模板时,Angular编译器读取该模板并创建一个优化的JavaScript表示,该模板正在做什么,并将该优化的javascript提供给浏览器。

所以,在浏览器抓住你的模板的时候,它实际上已经不再是HTML了 - 它只是javascript。因此,当前不支持从其他位置动态加载外部,未知和可能不安全的JavaScript。

+0

好的,我没有看到这个角度的问题,谢谢。 我也不知道它是不可能动态创建一个具有特定外部src属性的脚本标记 – Clement

相关问题