Mashup Builder > Migration d'applications composites héritées > Remplacement d'expressions non sécurisées dans une application composite
Remplacement d'expressions non sécurisées dans une application composite
Dans Mashup Builder, les expressions sont prises en charge dans les fonctions et les widgets. Une expression est un extrait de code JavaScript évaluée en une valeur unique. En général, les expressions sont utilisées pour créer une logique métier personnalisée dans une application composite. Vous pouvez écrire des expressions personnalisées pour valider, calculer, convertir et comparer des données pour les widgets, les fonctions et les services de données d'une application composite. En plus des fonctions, les expressions sont également utilisées pour permettre la validation des entrées dans le widget Grille.
Un problème de sécurité a été découvert dans les expressions d'application composite : il est possible pour un utilisateur ThingWorx authentifié avec des permissions de modification sur une application composite de modifier le DOM, en plus des fonctions et objets de widget et d'application composite, pendant l'exécution. Ce problème est limité à l'environnement d'exécution de l'application composite et ne permet pas aux utilisateurs d'exécuter du code à distance sur le serveur de plateforme. Dans le cadre du correctif de sécurité, des remplacements ont été introduits pour les fonctions actuelles dans les versions 9.3.2, 9.2.7, 9.1.11 et 9.0.16 ou ultérieures de ThingWorx Platform. Les widgets et fonctions suivants qui prennent en charge les expressions personnalisées sont affectés par ce problème :
Fonction Expression : évalue une expression et renvoie une valeur.
Fonction Validateur : évalue une expression et renvoie une valeur booléenne "vrai" ou "faux".
Grille (thématisable) : disponible dans ThingWorx 9.3 et versions ultérieures. Prend en charge les expressions pour la validation des entrées.
Widget Grille (avancée) : prend en charge les expressions pour la validation des entrées.
Widget Grille (héritée) : prend en charge les expressions pour la validation des entrées.
En outre, les widgets hérités suivants dans les versions non prises en charge de ThingWorx (8.4 et versions antérieures) sont également affectés :
Widget Expression
Widget Validateur
* 
Les widgets Expression et Validateur ont été remplacés par des fonctions dans ThingWorx 8.4. Pour plus d'informations, consultez la rubrique Notes de mise à jour ThingWorx 8.4.
Pour plus de sécurité, les améliorations suivantes ont été introduites dans les versions 9.3.2, 9.2.7, 9.1.11 et 9.0.16 ou ultérieures de ThingWorx Platform :
Nous avons ajouté de nouveaux remplacements standard plus sécurisés pour les fonctions non sécurisées existantes. Pour minimiser l'impact sur vos applications composites, vous pouvez remplacer manuellement les fonctions non sécurisées à l'aide du panneau Fonctions.
Nous vous recommandons vivement d'utiliser la version standard la plus récente. Toutefois, les fonctions non sécurisées existantes continueront à fonctionner jusqu'à ce qu'elles soient supprimées dans une prochaine version.
Nous avons supprimé la possibilité de créer des fonctions non sécurisées dans une nouvelle entité d'application composite. Toutefois, vous pouvez ajouter ou mettre à jour des fonctions non sécurisées dans les applications composites existantes.
Nous avons ajouté une propriété booléenne aux widgets Grille pour vous permettre de basculer vers les validateurs sécurisés les plus récents.
Les fonctions Expression et Validateur non sécurisées existantes groupées figurent sous une étiquette non sécurisé dans le panneau Fonctions.
Nous avons restreint l'accès aux fonctions et objets TW.Runtime globaux, et aux éléments jQuery et DOM dans les expressions utilisées par les fonctions Expression et Validateur, en plus du validateur Grille. Si vous utilisez des objets et des fonctions d'exécution ThingWorx dans vos expressions d'application composite, vous devrez peut-être mettre à jour et vérifier manuellement vos expressions lors du remplacement d'une fonction non sécurisée. Pour plus d'informations sur les fonctions et les objets pris en charge, consultez la rubrique Fonctions et objets d'exécution pris en charge.
* 
Nous vous recommandons vivement d'effectuer une mise à niveau vers les dernières versions de ThingWorx qui incluent les dernières mises à jour de sécurité, dès qu'elles sont disponibles.
Versions de ThingWorx affectées
Toute application composite utilisant des expressions dans des fonctions et des widgets sur les versions prises en charge suivantes de ThingWorx est affectée par cette modification :
ThingWorx 9.0.0 à 9.0.15
ThingWorx 9.1.0 à 9.1.10
ThingWorx 9.2.0 à 9.2.6
ThingWorx 9.3.0 et 9.3.1
A partir de ThingWorx version 9.3.2, 9.2.7, 9.1.11 et 9.0.16 ou ultérieure, l'accès aux objets et fonctions d'exécution d'application composite dans les expressions JavaScript est plus restreint. Ces restrictions ont été ajoutées pour améliorer la sécurité de l'application et réduire les vulnérabilités potentielles.
* 
Les versions non prises en charge de ThingWorx qui prennent en charge les expressions personnalisées, telles que ThingWorx 8.4. x et 8.5.x, sont également affectées. Si vous utilisez actuellement une version non prise en charge de ThingWorx, nous vous recommandons vivement de migrer vers la dernière version. L'utilisation de versions non prises en charge du produit peut vous exposer à des risques de sécurité.
Est-ce que cela a été utile ?