什么是禁用ngSanitize的风险?

时间:2015-11-16 22:50:19

标签: javascript html angularjs sanitize textangular

允许用户生成未经过黑化的html有什么风险?我正在使用text-angular并希望使用:

 ta-unsafe-sanitizer="true"

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

现在 - 我想99.9%的人阅读此内容并不知道text-angular是什么,所以我主要对允许原始html的整体后果感兴趣。

1 个答案:

答案 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。