Mashup Builder > 迁移旧式混搭 > 替换混搭中的非安全表达式
替换混搭中的非安全表达式
Mashup Builder 支持在函数和小组件内使用表达式。表达式是计算结果为单个值的 JavaScript 代码段。通常情况下,表达式用于在混搭应用程序中创建自定义业务逻辑。可通过编写自定义表达式来对混搭中小组件、函数和数据服务的数据进行验证、计算、转换和比较。除函数外,表达式也可用于在栅格小组件中启用输入验证。
混搭表达式中存在一个安全问题,即允许经过身份验证且拥有混搭编辑权限的 ThingWorx 用户在运行时修改 DOM、小组件和混搭函数以及对象。此问题仅限于混搭运行时环境,且不允许用户在平台服务器上远程执行代码。作为安全修补的一部分,ThingWorx Platform 9.3.2、9.2.7、9.1.11 和 9.0.16 或更高版中引入了当前函数的替代项。以下支持自定义表达式的小组件和函数会受到此问题的影响:
表达式函数 - 计算表达式并返回一个数值。
验证器函数 - 计算表达式并返回布尔值 true 或 false。
栅格 (可应用主题) - 适用于 ThingWorx 9.3 或更高版本。支持用于输入验证的表达式。
栅格 (高级) 小组件 - 支持用于输入验证的表达式。
栅格 (旧版) 小组件 - 支持用于输入验证的表达式。
此外,以下不受支持的 ThingWorx 版本 (8.4 或更低) 中的旧版小组件也会受到影响:
表达式小组件
验证器小组件
* 
表达式和验证器小组件已由 ThingWorx 8.4 中的函数替换。有关详细信息,请参阅 ThingWorx 8.4 发行说明
为提高安全性,ThingWorx Platform 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 版本,则强烈建议迁移至最新版本。使用不受支持的产品版本时可能会面临安全风险。
这对您有帮助吗?