替换混搭中的非安全表达式
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 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 版本,则强烈建议迁移至最新版本。使用不受支持的产品版本时可能会面临安全风险。
|