Mashup Builder > Перенос унаследованных мэшапов > Замена небезопасных выражений в мэшапе
Замена небезопасных выражений в мэшапе
В Mashup Builder выражения поддерживаются в функциях и виджетах. Выражение представляет собой фрагмент кода JavaScript, который вычисляется как одиночное значение. Обычно выражения используются для создания пользовательской бизнес-логики в приложении мэшапа. Можно написать пользовательские выражения для проверки, расчета, преобразования и сравнения данных для виджетов, функций и сервисов данных в мэшапе. Выражения, как и функции, также используются, чтобы включить проверку вводных данных в виджете "Сетка".
Обнаружена проблема безопасности в выражениях мэшапа, которая позволяет аутентифицированному пользователю ThingWorx с разрешениями на изменение для мэшапа изменять DOM в дополнение к функциям и объектам виджета и мэшапа во время выполнения. Эта проблема ограничена средой времени выполнения мэшапа и не позволяет пользователям выполнять код удаленно на сервере платформы. Как часть исправления безопасности, для текущих функций были введены замены в версиях 9.3.2, 9.2.7, 9.1.11 и 9.0.16 или более поздних версиях платформы ThingWorx. Эта проблема влияет на следующие виджеты и функции, поддерживающие пользовательские выражения:
Функция Выражение - рассчитывает выражение и возвращает значение.
Функция Валидатор - рассчитывает выражение и возвращает логическое значение true или false.
Сетка (с поддержкой темы) - доступна в ThingWorx 9.3 или более поздних версиях. Поддерживает выражения для проверки входных данных.
Виджет Сетка (расширенный) - поддерживает выражения для проверки входных данных.
Виджет Сетка (унаследованный) - поддерживает выражения для проверки входных данных.
Кроме того, затрагиваются также следующие унаследованные виджеты в неподдерживаемых версиях ThingWorx (8.4 или более ранние):
Виджет "Выражение"
Виджет "Валидатор"
* 
Виджеты "Выражение" и "Валидатор" были заменены в ThingWorx 8.4 на функции. Дополнительные сведения см. в разделе Примечания к выпуску ThingWorx 8.4.
Для повышения безопасности в версиях платформы ThingWorx 9.3.2, 9.2.7, 9.1.11 и 9.0.16 или более поздних были введены следующие улучшения:
Добавлены новые стандартные и более безопасные замены для существующих небезопасных функций. Для минимизации воздействия на приложения мэшапов можно заменить небезопасные функции в мэшапе вручную с помощью панели Функции.
Настоятельно рекомендуется использовать последнюю стандартную версию. Однако существующие небезопасные функции будут продолжать работать до тех пор, пока они не будут удалены в будущем выпуске.
Удалена возможность создания небезопасных функций в новом мэшапе. Однако в существующих мэшапах можно добавлять или обновлять небезопасные функции.
Добавлено логическое свойство в виджеты сетки, позволяющее переключиться на последние безопасные валидаторы.
Сгруппированные существующие небезопасные выражения и функции валидаторов имеют метку не защищено на панели Функции.
Ограничен доступ к глобальным функциям и объектам TW.Runtime, jQuery и DOM-элементам в выражениях, используемых в функциях выражений и проверки, в дополнение к валидатору сетки. При использовании объектов и функций времени выполнения ThingWorx в выражениях мэшапов, возможно, потребуется вручную обновить и проверить выражения при замене небезопасной функции. Дополнительные сведения о поддерживаемых функциях и объектах см. в разделе Поддерживаемые функции и объекты времени выполнения.
* 
Настоятельно рекомендуется выполнить обновление до последних версий ThingWorx, которые включают последние обновления безопасности, как только они будут доступны.
Изменяемые версии ThingWorx
Это изменение затрагивает любой мэшап, использующий выражения в функциях и виджетах на следующих поддерживаемых версиях ThingWorx:
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 и 9.3.1
С версии ThingWorx 9.3.2, 9.2.7, 9.1.11 и 9.0.16 или более поздних доступ к объектам времени выполнения и функциям мэшапов в выражениях JavaScript является более ограниченным. Эти ограничения были добавлены, чтобы повысить безопасность приложений и устранить потенциально уязвимые места.
* 
Также затрагиваются неподдерживаемые версии ThingWorx, поддерживающие пользовательские выражения, такие как ThingWorx 8.4.x и 8.5.x. Если в настоящее время используется неподдерживаемая версия ThingWorx, настоятельно рекомендуется перейти к последней версии. Использование неподдерживаемых версий продукта может представлять угрозу безопасности.
Было ли это полезно?