是否可以将 angularjs(版本 1.5.x)中 $sanitize 函数的本机实现替换为使用DOMPurify的自定义实现?
我的目标是能够编写ng-bind-html=value
并在清理 HTML 时使用 DOMPurify。
是否可以将 angularjs(版本 1.5.x)中 $sanitize 函数的本机实现替换为使用DOMPurify的自定义实现?
我的目标是能够编写ng-bind-html=value
并在清理 HTML 时使用 DOMPurify。
您可以使用 DOMPurity 在渲染数据之前对其进行清理。如果是这样,请不要注入$sanitize
.
在 XSS 安全性方面(当您标记它时),请注意 DOMPurify不适用于AngularJS:
DOMPurify 不会阻止您避免由疯狂的库功能引起的 XSS,例如 AngularJS 所具有的。我们实现了一个保护层来防止 jQuery-XSS,但不能覆盖所有其他库。如果您正在使用具有疯狂 XSS 漏洞的库,或者您不确定是否是这种情况,请与我们联系。另请参阅:JSMVCOMFG、mustache-security、jPurify
而不是使用ngSanitize
模块,只需提供您自己的实现$sanitize
:
angular.module("yourModule").factory("$sanitize", () => html =>
DOMPurify.sanitize(html, {
SAFE_FOR_JQUERY: true,
// ... other settings
})
);