AngularJS使用trustAsHtml函数只允许字符串的一部分

AngularJS使用trustAsHtml函数只允许字符串的一部分,angularjs,Angularjs,我将下一个通知数据存储在数据库中: 刚才有人对你的帖子做了些什么 现在,我希望某人显示为粗体,为此,我必须使用trustAsHtml,但如果用户名如下所示: 警报('xss') 因此,输出将变为: 警报(“xss”);刚才我对你的帖子做了些什么 使用trustAsHtml函数存在xss攻击。 如何使用AngularJS避免这种情况?您可以使用: 通过剥离所有潜在危险的标记来清理html字符串 消失而停留: angular .module('app',['ngSanitize'])) .cont

我将下一个通知数据存储在数据库中:

刚才有人对你的帖子做了些什么

现在,我希望某人显示为粗体,为此,我必须使用trustAsHtml,但如果用户名如下所示:

警报('xss')

因此,输出将变为:

警报(“xss”);刚才我对你的帖子做了些什么

使用trustAsHtml函数存在xss攻击。 如何使用AngularJS避免这种情况?

您可以使用:

通过剥离所有潜在危险的标记来清理html字符串

消失而
停留:

angular
.module('app',['ngSanitize']))
.controller('Ctrl',function(){
var模型=此;
model.message=“namealert('xss')刚刚对您的帖子做了一些修改。”;
收益模型;
});

好的,明白了。使用依赖项时,ng bind无论如何都会转义所有内容,ng bind html将仅对白色标签进行清理,并且使用$sce.trustAsHtml方法的ng bind html将允许任何危险html而不转义。因此,注入$ngSanitize模块依赖项并使用ng bind html将是明智的,以防我想允许出现上述情况。非常感谢你!