1. 概述
1.1 版本
產品 | 版本 | 安全漏洞宣告 |
---|---|---|
FineBI | 6.0 | 公示23年護網及歷史版本漏洞&解決方案:安全漏洞宣告 |
FineReport | 11.0 |
1.2 應用場景
為了提升產品的安全性,本文整理了FineReport11.0版本發佈以來所有漏洞及安全優化資訊。
注1:如無法完成產品升級和加固,請至少參考文檔完成:限制IP存取工程
注2:參照本文進行安全配置後,部分功能會有影響,主要面向安全訴求更高的客戶。
2. 安全漏洞
描述 | 說明 | 修復版本 |
---|---|---|
log4j 版本存在安全漏洞 |
| 11.0.2 |
修改使用者API明文傳輸資訊 |
| 11.0.7 |
系統管理的部分API越權存取 |
| 11.0.8 |
SSRF漏洞 |
| 11.0.8 |
內建部署成功的頁面未滿足部分客戶的安全規範要求 |
| 11.0.8 |
ChannelAPI反序列化漏洞 |
| 11.0.9 |
登入APIIP存取無限制 |
| 11.0.10 |
JDBC攻擊 (利用低版本的jdbc驅動或新型jdbc攻擊手段getshell) | 為了提高應對JDBC攻擊的能力:
| 11.0.11 |
CVE-2016-2183 | 可透過修改配置檔案限定:
| 11.0.13 |
觸發V8遠端程式碼執行漏洞 |
| 11.0.13 |
jquery版本過低 存在XSS注入風險 |
| 11.0.13 |
URL明文傳輸token |
| 11.0.14 |
Tomcat部署包內建jdk升級 |
| 11.0.15 |
3. 安全優化
描述 | 說明 | 優化版本 |
---|---|---|
支援取消「保持登入」功能 | 出於部分安全性要求,新增支援管理者自訂全局開關「保持登入」功能 詳細內容見:登入超時 | 11.0.11 |
「檔案上傳校驗」優化 | 對證件、金鑰檔案以及lic檔案的上傳進行單獨校驗 詳細內容見:檔案上傳校驗 | 11.0.11 |
存取限制增強 | HTTP 請求頭中的 Referer 欄位中包含了 HTTP 請求的來源資訊,即使用者是從哪個網頁進入到當前頁面的。 基於 Referer 欄位,在伺服器端設定存取控制規則(如白名單),限制使用者只能從固定網頁跳轉存取伺服器資源,防止伺服器資源被非法盜用。 在 FineReport 中開啟 Referer 校驗並配置白名單後,將根據白名單對訪客的身分進行識別和過濾,防止報表工程裏的報表被直接存取或者被其他網站連結存取。 詳細內容見:Referer校驗 | 11.0.12 |
API資訊傳輸加密方式優化 | 預設傳輸加密算法類型由「對稱加密」更改為「非對稱加密」 使用者可根據自身需求,在對稱加密算法和非對稱加密算法間進行切換 詳細內容見:加密算法 | 11.0.14 |
API報錯優化 | 11.0.14 及之後版本的工程預設開啟「請求迴應優化」按鈕。 請求迴應優化按鈕關閉時,顯示詳細堆棧資訊。若使用者認為顯示具體的堆棧資訊存在安全隱患,可開啟「請求迴應優化」按鈕。 請求迴應優化按鈕開啟時,提供關鍵報錯資訊,遮蔽具體報錯堆棧。 詳細內容見:安全防護 | 11.0.14 |
「使用者輸入校驗」 | 11.0.16 及之後版本的工程,新增「使用者輸入校驗」功能。 「使用者輸入校驗」功能預設開啟,對使用者在數據決策系統內特定場景的輸入進行校驗,可以有效過濾惡意程式碼,確定系統的安全性。 詳細內容見:使用者輸入校驗 | 11.0.16 |
SQL公式支援防注入 | 新增防 SQL 注入書寫方式,對安全問題需求較高可採用新寫法,原寫法仍可用。 11.0.18及之後版本支援較安全的SQL防注入寫法: =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '${$$$}' ",3,4) 所有版本支援: =sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+$$$+"' ",3,4) 詳細內容見:SQL函式 | 11.0.18 |
URL分號過濾機制 | Tomcat 在解析使用者請求的 URL 時,如果 URL 中包含分號,則 Tomcat 會過濾掉分號與斜槓之間的字串內容(包括分號)並進標準化處理。 攻擊者可以利用分號繞過權限驗證機制,存取敏感資源或執行惡意操作,危害系統的安全性。 11.0.19 及之後版本,FineReport 新增 URL 配置項,可以禁止在 URL 中使用分號,以防止路徑遍歷攻擊、權限繞過以及 URL 混淆和欺騙等安全問題。 詳細內容見:安全防護 | 11.0.19 |
手動新增使用者時,帳號和姓名中包含的字元限制放寬 | 帳號與姓名的設定要求: 11.0.20及之後版本: 不允許包含以下非法字元:引號、<>、& 不允許包含以下xss注入關鍵字:/script、javascript:、onblur 不允許包含以下命令執行關鍵字:getRuntime、ProcessBuilder、java.lang.ProcessImpl 11.0.20之前版本: 只允許包含字母、漢字、數字、底線、@、減號和點 詳細內容見:新增使用者 | 11.0.20 |
新增參數配置 | 新增參數SecurityConfig.forbidLoginNoEncryption 控制是否允許透過 encrypted 來控制密碼參數是否加密 新增參數SecurityConfig.hideFrontSeed 控制 system/info API是否傳回不再使用的 frontSM4Key 和 frontSeed 新增參數SecurityConfig.allowDeleteLog 控制是否允許在平台中手動刪除日誌 詳細內容見:fine_conf_entity視覺化配置 | 11.0.21 |