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