允许用户生成未经过黑化的html有什么风险?我正在使用text-angular并希望使用:
ta-unsafe-sanitizer="true"
https://github.com/fraywing/textAngular/issues/233
现在 - 我想99.9%的人阅读此内容并不知道text-angular是什么,所以我主要对允许原始html的整体后果感兴趣。
答案 0 :(得分:1)
假设您有一个带有输入的表单元素,并且用户会在输入中插入类似drop table users
的内容。如果您的服务器代码较弱或某些服务不知道它的安全级别,您可能会丢失数据。
现在,这是一个例子。有很多方法可以用类似的方式做坏事。
其他示例是使用查询参数(如
)向图像src
插入一些网址
<img
src='http://somehackingsite.com/images/lol.png?userIp="some scriptor other hacking style"' />
AngularJs提供了一种通过ngSanitize
解决它的方法通过剥离所有潜在危险来清理html字符串 令牌。
通过将HTML解析为标记来清理输入。一切安全 然后将令牌(来自白名单)序列化为正确转义 html字符串。这意味着没有不安全的输入可以进入 返回字符串。
配置了属性值的URL清理白名单 使用函数aHrefSanitizationWhitelist和 $ compileProvider的imgSrcSanitizationWhitelist。