Mashup Builder > Migración de mashups heredados > Reemplazo de expresiones no seguras en un mashup
Reemplazo de expresiones no seguras en un mashup
En Mashup Builder, se soportan expresiones en funciones y widgets. Una expresión es un fragmento de código de JavaScript que se evalúa en un valor único. Normalmente, las expresiones se utilizan para crear lógica empresarial personalizada en una aplicación de mashup. Se pueden escribir expresiones personalizadas para validar, calcular, convertir y comparar datos para widgets, funciones y servicios de datos en un mashup. Además de funciones, las expresiones también se utilizan para activar la validación de entrada en los widget de rejilla.
Se ha detectado una incidencia de seguridad en las expresiones de mashup que permite a un usuario autenticado de ThingWorx con permisos de edición para un mashup modificar el DOM, además de las funciones y los objetos de widget y mashup en tiempo de ejecución. Esta incidencia se limita al entorno de tiempo de ejecución de mashup y no permite a los usuarios ejecutar código de forma remota en el servidor de plataforma. Como parte de la corrección de seguridad, se han introducido sustituciones de las funciones vigentes en las versiones 9.3.2, 9.2.7, 9.1.11 y 9.0.16 o posterior de ThingWorx Platform. Los siguientes widgets y funciones soportan expresiones personalizadas y se ven afectados por esta incidencia:
Función Expresión: se evalúa una expresión y se devuelve un valor.
Función Validador: se evalúa una expresión y se devuelve un valor booleano verdadero o falso.
Rejilla (con temas): disponible en ThingWorx 9.3 o versiones posteriores. Se soportan expresiones para la validación de entradas.
Widget de rejilla (avanzada): se soportan expresiones para la validación de entradas.
Widget de rejilla (heredada): se soportan expresiones para la validación de entradas.
Además, los siguientes widgets heredados en versiones no soportadas de ThingWorx (8.4 o versiones anteriores) también se ven afectados:
Widget de expresión
Widget de validador
* 
Los widgets de expresión y validador se han reemplazado por funciones en ThingWorx 8.4. Para obtener más información, consulte Notas de la versión ThingWorx 8.4.
Para mejorar la seguridad, se han introducido las siguientes mejoras en las versiones 9.3.2, 9.2.7, 9.1.11 y 9.0.16 o posterior de ThingWorx Platform:
Se han añadido nuevos estándares y reemplazos más seguros para las funciones no seguras existentes. Para minimizar el impacto en las aplicaciones de mashup, se pueden reemplazar las funciones no seguras en un mashup manualmente mediante el panel Funciones.
Se recomienda encarecidamente utilizar la versión estándar más reciente. Sin embargo, las funciones no seguras existentes seguirán funcionando hasta que se quiten en una versión futura.
Se ha quitado la capacidad de crear funciones no seguras en una nueva entidad de mashup. Sin embargo, se pueden añadir o actualizar funciones no seguras en los mashups existentes.
Se ha añadido una propiedad booleana a los widgets de rejilla que permite cambiar a los validadores seguros más recientes.
Las funciones de validador y de expresión no seguras agrupadas se encuentran en un rótulo No seguras del panel Funciones.
Acceso restringido a funciones y objetos TW.Runtime globales, jQuery y elementos DOM de expresiones utilizadas por las funciones de expresión y validador, además del validador de rejilla. Si se utilizan objetos y funciones en tiempo de ejecución de ThingWorx en las expresiones de mashup, es posible que sea necesario actualizar y verificar manualmente las expresiones al reemplazar una función no segura. Para obtener más información sobre las funciones y los objetos soportados, consulte Objetos y funciones en tiempo de ejecución soportados.
* 
Se recomienda encarecidamente que se actualice a las versiones más recientes de ThingWorx que incluyen las actualizaciones de seguridad más recientes tan pronto como estén disponibles.
Versiones afectadas de ThingWorx
Este cambio afecta a cualquier mashup que utilice expresiones de funciones y widgets en las siguientes versiones soportadas de ThingWorx:
ThingWorx 9.0.0 a 9.0.15
ThingWorx 9.1.0 a 9.1.10
ThingWorx 9.2.0 a 9.2.6
ThingWorx 9.3.0 y 9.3.1
A partir de ThingWorx versión 9.3.2, 9.2.7, 9.1.11 y 9.0.16 o versión posterior, el acceso a los objetos y las funciones en tiempo de ejecución de mashups en las expresiones JavaScript es más restringido. Estas restricciones se han añadido para mejorar la seguridad de la aplicación y reducir posibles vulnerabilidades.
* 
Las versiones no soportadas de ThingWorx que soportan expresiones personalizadas, como ThingWorx 8.4.x y 8.5.x, también se ven afectadas. Si actualmente se utiliza una versión no soportada de ThingWorx, se recomienda encarecidamente la migración a la versión más reciente. El uso de versiones no soportadas del producto puede exponer el usuario a riesgos de seguridad.
¿Fue esto útil?