为了防止行内脚本标签的执行,AngularJS提供了SCE(Strict Contextual Escaping)服务。
SCE服务通过对HTML内容进行标记和验证,防止其中的行内脚本标签被执行。下面是一个使用SCE服务的代码示例:
angular.module('app', []).config(function($sceDelegateProvider) {
$sceDelegateProvider.enabled(true);
});
angular.module('app').controller('myCtrl', function($scope, $sce) {
$scope.untrustedHtml = '';
$scope.trustedHtml = $sce.trustAsHtml($scope.untrustedHtml);
});
在上述代码中,$sce.trustAsHtml()
方法将需要展示的HTML内容进行标记,使其被认为是安全的,从而防止其中的行内脚本标签被执行。最终,只会展示HTML内容而不会触发脚本的执行。
需要注意的是,使用SCE服务需要谨慎处理用户输入的HTML内容,避免恶意的脚本注入攻击。