【问题标题】:AngularJS: How to resolve "Attempting to use an unsafe value in a safe context"?AngularJS:如何解决“尝试在安全上下文中使用不安全值”?
【发布时间】:2017-06-19 05:03:13
【问题描述】:

当我尝试将我的数据显示为 text-html 时,它以 HTML 格式显示,但是当我刷新页面时,我收到此错误:

[$sce:unsafe] 尝试在安全上下文中使用不安全值。

这是我的 AngularJS 代码:

data.attributes.task_name = $sce.trustAsHtml(data.attributes.task_name);

HTML

<span ng-bind-html="taskdata.attributes.task_name" data-html="true" title="{{reminder.attributes.message}}"></span>

【问题讨论】:

标签: javascript html angularjs textarea


【解决方案1】:

来自Angular documentation

未发现提供用于特定上下文的值 安全/值得信赖。

AngularJS 的Strict Contextual Escaping (SCE) 模式(由 默认),需要在某些上下文中绑定才能产生一个值 在这种情况下可以安全使用。 (例如加载一个 来自 URL 的 AngularJS 模板要求 URL 被考虑 安全加载资源。)

这有助于防止 XSS 和其他安全问题。阅读更多Strict Contextual Escaping (SCE)

您可能希望包含 ngSanitize 模块以使用自动 消毒。


您必须包含 ngSanitize

index.html 上加载它:

<script src="lib/angular/angular-sanitize.min.js"></script>

将其作为依赖项注入您的 app.js

angular.module('myApp', ['...', 'ngSanitize']);

【讨论】:

  • 这让我可以在 AngularJS 中用换行符拆分连接一个字符,这真是太神奇了。谢谢!
  • 包括 ngSanitize 为我修复了它!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 2013-08-30
相关资源
最近更新 更多