"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment définir dynamiquement l'attribut src de l'iframe en toute sécurité dans AngularJS ?

Comment définir dynamiquement l'attribut src de l'iframe en toute sécurité dans AngularJS ?

Publié le 2024-11-04
Parcourir:470

How to Dynamically Set the iframe\'s src Attribute Securely in AngularJS?

Définition dynamique de l'attribut src d'iframe dans AngularJS

Lorsque vous travaillez avec des iframes dans AngularJS, il est souvent nécessaire de définir l'attribut src de manière dynamique en fonction d'un variable. Cependant, tenter de le faire avec une affectation standard peut entraîner le rendu d'un attribut src vide dans l'iframe.

Comprendre le problème et la solution

Le problème survient lorsque vous essayez pour définir l'attribut src avec une URL non fiable. AngularJS met en œuvre des mesures de sécurité pour empêcher les attaques potentielles XSS (cross-site scripting). Pour atténuer ce problème, le service $sce (Strict Contextual Escaping) doit être utilisé pour « faire confiance » à l'URL avant de l'attribuer.

La méthode trustAsResourceUrl() du service $sce peut être utilisée pour marquer explicitement un URL comme étant fiable, garantissant qu'elle peut être utilisée en toute sécurité dans un modèle AngularJS. service dans AppCtrl et modifiez la fonction setProject() comme suit :

$scope.setProject = function (id) { $scope.currentProject = $scope.projects[id]; $scope.currentProjectUrl = $sce.trustAsResourceUrl($scope.currentProject.url); }

Dans le modèle HTML, mettez à jour l'attribut src de l'iframe pour référencer la variable currentProjectUrl :

$scope.setProject = function (id) {
    $scope.currentProject = $scope.projects[id];
    $scope.currentProjectUrl = $sce.trustAsResourceUrl($scope.currentProject.url);
}

Explication

Notes supplémentaires

La méthode trustAsResourceUrl() ne doit être utilisée que lorsque l'URL est connue pour être sûre et fiable.

Si l'URL n'est pas entièrement qualifiée (par exemple, le schéma ou le nom d'hôte manque), AngularJS peut lancer un avertissement de sécurité.

Pour répondre aux problèmes de sécurité. , il est toujours conseillé de mettre en œuvre une validation et une désinfection appropriées côté serveur avant d'accepter les URL fournies par l'utilisateur.
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729487836. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3