首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角度处理用户输入时,我在多大程度上担心安全性(XSS)?

问在角度处理用户输入时,我在多大程度上担心安全性(XSS)?
EN

Stack Overflow用户
提问于 2017-12-08 15:02:46
回答 1查看 434关注 0票数 1

为了系统地阻止XSS错误,Angular默认将所有值视为不可信的。当一个值从模板中插入到DOM中时,通过属性、属性、样式、类绑定或插值,角清除和转义不受信任的值。 角模板与可执行代码相同:模板中的HTML、属性和绑定表达式(而不是绑定值)被信任为安全。这意味着应用程序必须防止攻击者控制的值将其写入模板的源代码。不要通过连接用户输入和模板来生成模板源代码。若要防止这些漏洞,请使用脱机模板编译器,也称为模板注入。

这就是角关于XSS的说法。然而,似乎第一段与第二段相矛盾(如果我错了,请纠正我)。所以我的问题是:我是否需要逃避并净化我的用户输入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-08 21:27:01

代码是可信的,但是值是不可信的。如果您使用普通的角数据绑定插入值,那么它们将被适当地编码,因为角可以识别什么是值,什么是代码。

例如,这不需要任何附加转义:

代码语言:javascript
复制
<h1>Hello {{yourName}}!</h1>

但是,如果您试图使用字符串连接创建模板。例如:

代码语言:javascript
复制
'<h1>Hello ' + yourName + '!</h1>'

或者使用像PHP这样的服务器端语言:

代码语言:javascript
复制
<h1>Hello <?= $_GET['name'] ?> !</h1>

则角不能区分文字html和插入值之间的区别。像这样插入的数据现在可以注入Javascript和角语法。

只要你坚持正常的角度机制插入值,那么你就不需要额外的编码。这些漏洞来自于绕过角和直接以其他方式插入值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47716926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档