gpt4 book ai didi

angularjs - 禁用 $sce 服务缺点

转载 作者:行者123 更新时间:2023-12-04 18:40:43 24 4
gpt4 key购买 nike

如果我完全禁用 $sce 服务会发生什么坏事?

angular.module('app').config(function ($sceProvider) {
$sceProvider.enabled(false);
});

最佳答案

只有当您 100% 确定所有应用程序绑定(bind)(HTML、URL...)都是安全的时,您才应该禁用 SCE。例如,如果应用程序总是在渲染之前清理服务器或客户端上的用户输入,那么 SCE 强制执行的附加仪式可能是不必要的。

但是,很少有人能 100% 肯定所有值都是安全的,尤其是当应用程序变得很大并且由许多开发人员编写代码时。启用 SCE 会强制仅使用 $sce.trustAsXXX 之一明确标记为受信任的值。应用程序可以使用方法。

例如,如果您使用 ngBindHtml为了渲染一些 HTML,AngularJS 会抛出一个错误,除非分配给 ngBindHtml 的范围变量。用 $sce.trustAsHtml 包裹.当您设置 templateUrl 时会发生类似的强制执行的路线或指令。这通过快速失败使应用程序更加安全,让您有机会审核发生错误的每个地方并决定是信任还是修复它。

最后一点,如果您包括 ngSanitize或实现 $sanitize服务,那么你不需要禁用 SCE 来使用不受信任的 HTML 值,因为 AngularJS 只会使用 $sanitize 清理不受信任的输入。服务。同样,如果模板 URL 与应用程序共享源,则无需显式包装它。

关于angularjs - 禁用 $sce 服务缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com