1. 概述
1.1 版本
FineBI服务器版本 | 功能变动 |
---|---|
6.0.10 | - |
1.2 应用场景
服务器端会接受用户输入的内容,并将用户输入作为 Web 应用的一部分。
如果用户输入的内容中包含恶意代码,服务器端会接受并执行恶意代码,从而导致信息泄露,代码执行等问题。
1.3 功能简介
6.0.10 及之后版本的工程,新增「用户输入校验」功能。
「用户输入校验」功能默认开启,对用户在 FineBI 系统内特定场景的输入进行校验,可以有效过滤恶意代码,确保系统的安全性。
若用户输入的内容中包含非法内容,在点击「确定」或「保存」时,会阻止保存已输入的内容并进行弹窗提示,如下图所示:
2. 功能介绍
2.1 开启/关闭校验
超级管理员可通过修改工程 fine_conf_entity 表中的以下配置项来开启/关闭用户输入校验。
注:工程 fine_conf_entity 表中默认不存在用户输入校验配置项,需手动添加字段并在重启工程后生效,添加方法请参考:填报修改fine_conf_entity 。
配置项 | 配置值 | 含义 |
---|---|---|
WebSecurityConfig.enableParameterVerify | true | 开启用户输入校验(默认值) |
false | 关闭用户输入校验 |
2.2 校验内容
用户输入校验功能开启后,会对用户在 FineBI 系统内特定输入场景的输入内容进行校验,具体场景请参考本文 2.3 节。
若用户输入的内容中包含符合以下正则表达式的部分,在点击「确定」或「保存」时,会阻止「确定」或「保存」已输入的内容,并会在输入框上方进行提示:「输入存在安全非法字符XXX」。
注:当输入中包含多个非法字符时,仅提示校验出的第一个非法字符。
校验类型 | 正则 |
---|---|
非法字符 | " |
< | |
> | |
& | |
非法关键字 | /script |
javascript: | |
onblur | |
getRuntime | |
ProcessBuilder | |
java.lang.ProcessImpl |
2.3 校验场景
模块 | 校验场景 | 校验内容 |
---|---|---|
目录管理 | 添加模板/编辑模板 | 模板名称、描述 |
添加上报标签/编辑上报标签 | 标签名称、描述 | |
添加链接/编辑链接 | 链接名称、描述 | |
添加目录/编辑目录 | 目录名称、描述 | |
添加首页/编辑首页 | 首页名称、备注 | |
用户管理 | 添加用户/编辑用户 | 用户姓名 |
添加部门/编辑部门 | 部门名称 | |
添加角色/编辑角色 | 角色名称、角色备注 | |
外观配置 | 登录页 | 登录标题 |
平台样式 | 平台标题 | |
系统管理 | 常规>常规参数 | Servlet路径名 |
邮箱>发件人账户设置 | 邮箱显示姓名 | |
数据连接 | 数据连接管理>新建数据连接 | 数据连接名称 |
数据连接管理>重命名数据连接名称 | 数据连接名称 | |
服务器数据集>创建数据集 | 数据集名称 | |
服务器数据集>重命名数据集名称 | 数据集名称 | |
地图配置 | 地理信息>添加目录 | 地图名称 |
地理信息>重命名地图名称 | 地图名称 | |
自定义图片>添加自定义图片 | 图片名称 | |
自定义图片>重命名图片名称 | 图片名称 |