禁用 ngSanitize 有哪些风险?

What are the Risks of Disabling ngSanitize?

允许用户生成未经处理的 html 有什么风险?我正在使用 text-angular 并想使用:

 ta-unsafe-sanitizer="true"

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

现在 - 我想 99.9% 的读者都不知道 text-angular 是什么,所以我主要对允许原始 html 的总体后果感兴趣。

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

另一个例子是插入到图像 src 一些 url 与查询参数像

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

AngularJs 提供了一种通过 ngSanitize

解决的方法

Sanitizes an html string by stripping all potentially dangerous tokens.

The input is sanitized by parsing the HTML into tokens. All safe tokens (from a whitelist) are then serialized back to properly escaped html string. This means that no unsafe input can make it into the returned string.

The whitelist for URL sanitization of attribute values is configured using the functions aHrefSanitizationWhitelist and imgSrcSanitizationWhitelist of $compileProvider.