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 版本,我們強烈建議您移轉至最新版本。使用不受支援的產品版本會使您面臨安全性風險。
這是否有幫助?