0

允许用户生成未经处理的 html 的风险是什么?我正在使用文本角度并想使用:

 ta-unsafe-sanitizer="true"

https://github.com/fraywing/textAngular/issues/233

现在 - 我想 99.9% 的阅读者不知道什么是文本角度,所以我主要对允许原始 html 的整体后果感兴趣。

4

1 回答 1

1

假设您有一个带有输入的表单元素,并且用户在输入中插入类似drop table users. 如果您的服务器代码或某些服务很弱,您不知道它的安全级别是多少,您可能会丢失您的数据。现在,这是一个例子。有很多方法可以以类似的方式做坏事。

其他示例是向图像中插入src一些带有查询参数的 url,例如

<img 
   src='http://somehackingsite.com/images/lol.png?userIp="some scriptor other hacking style"' />

AngularJs 提供了一种通过 ngSanitize 解决它的方法

通过剥离所有潜在危险的标记来清理 html 字符串。

通过将 HTML 解析为标记来清理输入。然后将所有安全令牌(来自白名单)序列化回正确转义的 html 字符串。这意味着没有不安全的输入可以进入返回的字符串。

属性值的 URL 清理白名单是使用 $compileProvider 的 aHrefSanitizationWhitelist 和 imgSrcSanitizationWhitelist 函数配置的。

于 2015-11-16T23:53:52.673 回答