web-dev-qa-db-fra.com

AngularJS: Comment résoudre le problème "Essayer d'utiliser une valeur non sécurisée dans un contexte sécurisé"?

Lorsque j'ai essayé d'afficher mes données sous forme de texte HTML, il s'est affiché au format HTML, mais lorsque j'ai actualisé la page, le message d'erreur suivant s'affiche:

[$ sce: unsafe] Tentative d'utilisation d'une valeur non sécurisée dans un contexte sécurisé.

Voici mon AngularJS code:

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>
22
STackers

De la documentation angulaire :

La valeur fournie pour une utilisation dans un contexte spécifique n'a pas été jugée sûre/fiable pour une utilisation.

AngularJS Le mode échappement strict contextuel (SCE) (activé par défaut), nécessite des liaisons dans certains contextes pour générer une valeur approuvée comme étant sans danger pour un tel contexte. (Par exemple, le chargement d’un modèle AngularJS à partir d’une URL nécessite que l’URL soit considérée comme sûre pour le chargement des ressources.)

Cela aide à prévenir XSS et d’autres problèmes de sécurité. Lire la suite sur - Échappement contextuel strict (SCE)

Vous voudrez peut-être inclure le module ngSanitize pour utiliser le nettoyage automatique.


Vous devez inclure ngSanitize:

Chargez-le sur index.html :

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

Injectez-le en tant que dépendance dans votre app.js :

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