1. 概述
1.1 版本
| FineDataLink 版本 | 功能變動 |
|---|---|
| 4.0.23 | - |
1.2 應用場景
伺服器端會接受使用者輸入內容,並將使用者輸入作為 Web 應用的一部分。
如果使用者輸入內容中包含惡意程式碼,伺服器端會接受並執行惡意程式碼,進而導致資訊公佈,程式碼執行等問題。
1.3 功能簡介
4.0.23 及之後版本的 FineDataLink,新增「使用者輸入校驗」功能。
「使用者輸入校驗」功能預設開啟,對使用者在 FineDataLink 內特定場景的輸入進行校驗,可以有效過濾惡意程式碼,確定系統的安全性。
若使用者輸入內容中包含非法內容,在點選「確定」或「儲存」時,會阻止儲存已輸入內容並進行彈窗提示,如下圖所示:

2. 功能介紹
2.1 開啟/關閉校驗
超級管理者可透過修改工程 fine_conf_entity 表中的以下配置項來開啟/關閉使用者輸入校驗。
注:工程 fine_conf_entity 表中預設不存在使用者輸入校驗配置項,需手動新增欄位並在重啟工程後生效,新增方法請參考:手動修改fine_conf_entity 。
| 配置項 | 配置值 | 含義 |
|---|---|---|
| WebSecurityConfig.enableParameterVerify | true | 開啟動戶輸入校驗(預設值) |
| false | 關閉使用者輸入校驗 |
2.2 校驗內容
使用者輸入校驗功能開啟後,會對使用者在 FineDataLink 內特定輸入場景的輸入內容進行校驗,具體場景請參考本文 2.3 節。
若使用者輸入內容中包含符合以下正則運算式的部分,在點選「確定」或「儲存」時,會阻止「確定」或「儲存」已輸入內容,並會在輸入框上方進行提示:「輸入存在安全非法字元XXX」。
注:當輸入中包含多個非法字元時,僅提示校驗出的第一個非法字元。
| 校驗類型 | 正則 |
|---|---|
| 非法字元 | " |
| < | |
| > | |
| & | |
| 非法關鍵字 | /script |
| javascript: | |
| onblur | |
| getRuntime | |
| ProcessBuilder | |
| java.lang.ProcessImpl |
2.3 校驗場景
| 模組 | 校驗場景 | 校驗內容 |
|---|---|---|
| 使用者管理 | 新增使用者/編輯使用者 | 使用者姓名 |
| 新增部門/編輯部門 | 部門名稱 | |
| 新增角色/編輯角色 | 角色名稱、角色備註 | |
| 外觀配置 | 登入頁 | 登入標題 |
| 平台樣式 | 平台標題 | |
| 系統管理 | 標準>標準參數 | Servlet路徑名 |
| 信箱>寄件人賬戶設定 | 信箱顯示姓名 | |
| 資料連結 | 資料連結管理>建立資料連結 | 資料連結名稱 |
| 資料連結管理>重新命名資料連結名稱 | 資料連結名稱 | |
| 伺服器資料集>建立資料集 | 資料集名稱 | |
| 伺服器資料集>重新命名資料集名稱 | 資料集名稱 |
