翻譯|行業資訊|編輯:吉煒煒|2025-10-17 10:16:02.030|閱讀 15 次
概述:近日,Stimulsoft 官方再次提醒開發者注意在報表加載與腳本執行過程中可能存在的安全風險,特別是在使用 “Compilation(編譯)計算模式” 時。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
是一款專業的商業智能報表與數據可視化工具套件,廣泛應用于企業級系統中,用于快速構建交互式報表、儀表盤和數據分析界面。其產品支持 .NET、JavaScript、PHP、Java 等多種開發平臺,幫助開發者以可視化方式展現復雜數據,實現靈活的企業信息展示與決策支持。
近日,官方再次提醒開發者注意在報表加載與腳本執行過程中可能存在的安全風險,特別是在使用 “Compilation(編譯)計算模式” 時。
當報表的計算模式被設置為 Compilation(編譯)模式 時,在 Web Viewer 中打開報表時可能會執行嵌入代碼。這些代碼可能在服務器端被編譯并運行,從而存在遠程執行不安全代碼(RCE)的風險。
需要特別說明的是:
Stimulsoft 本身并不存在可被直接利用的內置漏洞。
安全風險僅在特定項目配置下出現,例如:
報表計算模式設為 Compilation;
應用允許用戶上傳未經過驗證的自定義報表文件。
為了最大程度降低風險, 官方建議開發者采取以下防護措施:
僅在必要且受信任的環境下使用 Compilation 模式。
在大多數情況下,推薦啟用 Interpretation(解釋)模式,該模式不進行即時編譯,從根本上消除了遠程代碼執行風險。
可通過以下方式設置:
report.CalculationMode = StiCalculationMode.Interpretation;
或通過全局 Viewer 參數禁用加載帶 Compilation 模式的報表:
StiOptions.Viewer.AllowOpenDocumentWithCompilation = false;
在 版本中,.NET 平臺已支持在 Interpretation 模式下執行 C# 腳本。
開發者可在腳本中安全使用變量、數據列、自定義函數及基本控制語句(if、else、循環等),滿足大多數業務邏輯需求,同時確保系統安全。
若應用允許用戶上傳報表文件,請務必:
對上傳文件進行結構驗證(如 XML/JSON 內容分析);
禁止執行用戶代碼;
在隔離環境中保存與處理上傳報表;
限制系統用戶的文件與數據訪問權限。
此外,還可以在前端 Viewer 中通過攔截 “Open” 操作的方式臨時阻止加載未知報表文件。
C#
... <body> <form id="form1" runat="server"> <cc2:StiWebViewer runat="server" ID="StiWebViewer1" OnGetReport="StiWebViewer1_GetReport" /> </form> <script> jsStiWebViewer1.onready = function () { jsStiWebViewer1.postAction_ = jsStiWebViewer1.postAction; jsStiWebViewer1.postAction = function (action, bookmarkPage, bookmarkAnchor, componentGuid) { if (action == "Open" || action == "OpenDashboard") { //Write your code here for the "Open" return; } jsStiWebViewer1.postAction_(action, bookmarkPage, bookmarkAnchor, componentGuid); } } </script> </body> ...JavaScript:
... let viewer = new Stimulsoft.Viewer.StiViewer(viewerOptions, "StiViewer", false); viewer.renderHtml("content"); viewer.jsObject.postAction_ = viewer.jsObject.postAction; viewer.jsObject.postAction = function (action, bookmarkPage, bookmarkAnchor, componentGuid) { if (action === "Open" || action === "OpenDashboard") { //Write your code here for the "Open" return; } viewer.jsObject.postAction_(action, bookmarkPage, bookmarkAnchor, componentGuid); } ...
Stimulsoft 提供的編譯與腳本功能是為了滿足靈活的業務邏輯實現需求,而非默認行為。應用安全性取決于開發者對環境配置和功能使用的正確性。
我們再次強調:
Stimulsoft 產品不存在可直接利用的安全漏洞;
僅當錯誤配置與未過濾的用戶輸入結合時,才可能出現潛在風險;
如果出現以下情況,,不建議啟用 Compilation 模式。
---------------------------------------------------------------------------
關于慧都科技:
慧都科技是一家行業數字化解決方案公司,長期專注于軟件、油氣與制造行業。公司基于深入的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與長期競爭優勢。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技是Stimulsoft的在中國區的合作伙伴,Stimulsoft作為圖表報表領域的優秀產品,幫助企業實現輕松構建高性能的表格報告及圖表。
下載|體驗更多Stimulsoft產品,請咨詢,或撥打產品熱線:023-68661681
加入圖表報表技術交流QQ群(740060302),與更多小伙伴一起探討提升開發技能。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:慧都網