1

是否可以将 angularjs(版本 1.5.x)中 $sanitize 函数的本机实现替换为使用DOMPurify的自定义实现?

我的目标是能够编写ng-bind-html=value并在清理 HTML 时使用 DOMPurify。

4

2 回答 2

3

您可以使用 DOMPurity 在渲染数据之前对其进行清理。如果是这样,请不要注入$sanitize.

在 XSS 安全性方面(当您标记它时),请注意 DOMPurify不适用于AngularJS

DOMPurify 不会阻止您避免由疯狂的库功能引起的 XSS,例如 AngularJS 所具有的。我们实现了一个保护层来防止 jQuery-XSS,但不能覆盖所有其他库。如果您正在使用具有疯狂 XSS 漏洞的库,或者您不确定是否是这种情况,请与我们联系。另请参阅:JSMVCOMFGmustache-securityjPurify

于 2017-04-27T09:22:06.863 回答
0

而不是使用ngSanitize模块,只需提供您自己的实现$sanitize

angular.module("yourModule").factory("$sanitize", () => html =>
  DOMPurify.sanitize(html, {
    SAFE_FOR_JQUERY: true,
    // ... other settings
  })
);
于 2019-09-30T16:20:05.260 回答