1. 概述编辑
1.1 版本
产品 | 版本 |
---|---|
FineBI | 5.0、5.1、6.0 |
FineReport | 10.0、11.0 |
1.2 应用场景
为了提升产品的安全性,本文整理了,正式工程中应当开启的相关安全设置,请参照本文对工程进行安全加固。
注:参照本文进行安全配置后,部分功能会有影响,主要面向安全诉求更高的客户。
2. 产品升级编辑
2.1 升级主JAR
为修复之前版本中存在的一些问题,建议将主产品升级到安全版本。
产品 | 高危版本 | 建议升级 |
---|---|---|
FineReport11.0 | 11.0.17及以下版本 | 1)备份工程,关闭工程 2)获取11.0.18版本JAR包,将除designer文件夹以外的文件,替换到工程 %Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 3)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包 注:上文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考: |
FineReport10.0 | 10.0.19.26及以下版本 | 1)备份工程,关闭工程 2)获取10.0.19.31(即最新版本)JAR包,将除designer文件夹以外的文件,替换到工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 3)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包 4)下载驱动:netty安全驱动,将jar包上传到%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 注:上文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 |
FineBI6.0 | 6.0.7及以下版本 | 1)备份工程,关闭工程 2)下载并解压:6.0.11护网定制版本,将所有文件上传替换到工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 3)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包 注:上文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:小版本升级指南 (jar包文件获取仍参考本文) |
FineBI5.1 | 5.1.19~5.1.30 适配11.0 | 1)备份工程,关闭工程 2)获取5.1.33(即最新版本)版本JAR包,将所有文件上传替换到工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 3)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包 注:上文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:5.1.18-5.1.19及之后版本升级指南 |
FineBI5.1 | 5.1.18.30及以下版本 适配10.0 | 1)备份工程,关闭工程 2)获取5.1.18.33(即最新版本)版本JAR包,将所有文件上传替换到工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 3)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包 4)下载驱动:netty安全驱动,将jar包上传到%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下 注:上文简单描述了服务器工程升级的操作步骤,更详细升级指南请参考:5.1.5-5.1.18版本升级指南 |
2.2 升级sqlite驱动
背景说明:
产品默认内置了sqlite驱动,如驱动版本为3.41及之前版本,建议升级到更安全版本。
操作步骤:
1)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称为sqlite-jdbc-xxxx.jar的jar包
2)下载驱动:sqlite驱动安全版本,将jar包上传到%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下
2.3 升级netty相关JAR包
如已执行2.1节升级主jar操作,可跳过本节内容。
面对对象:
FineReport11.0.8及以下版本、FineReport10.0、FineBI5.1.18及以下版本
背景说明:
产品默认内置了netty相关JAR包,建议升级到更安全版本。
操作步骤:
1)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包
2)下载驱动:netty安全驱动,将jar包上传到%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下
2.4 清理classes文件
面向对象:
FineReport11.0/10.0
操作步骤:
请检查%Tomcat_HOME%/webapps/webroot/WEB-INF/classes/com/fr/data目录下,是否存在impl文件夹。
这是产品自带的历史classes文件,请手动删除impl文件夹下的所有文件。
2.5 重启工程
请参考「关闭或重启FineReport工程」文档,重启工程,完成升级。
3. 插件管理编辑
3.1 升级插件
工程上所有的插件,建议全部更新至最新版本。
建议至少确保以下插件升级到安全版本(若未安装相应插件可忽略):
插件名称 | 高危版本 | 建议升级 |
---|---|---|
fvs大屏编辑模式插件 | V1.13及以下版本 | 1)建议先参考2.1节升级FineReport主JAR版本到最新 2)至少升级FineReport主JAR版本到2023.05.12及之后 3)升级插件版本到帆软市场最新版本V1.16.1 插件升级步骤请参考:服务器插件管理 |
扩展图表插件 | V4.6.6及以下版本 | 升级插件版本到最新版本V4.6.10 插件升级步骤请参考:服务器插件管理 |
常用函数集合插件 | V9.4及以下版本 | 升级插件版本到最新版本 插件升级步骤请参考:服务器插件管理 |
3.2 安装插件
插件作用:
对于被爆破了账密的系统能有效提升服务器安全性
插件安装:
点击下载插件:安全加固插件
插件安装步骤请参考:服务器插件管理
注:插件安装完成后,需重启工程生效。
功能影响:
1)插件安装后,需要重启生效
2)插件安装后,数据连接处的SQL验证查询功能不可用
3)插件安装后,不可添加JNDI数据连接
4)插件安装后,水印设置禁用部分函数
5)插件安装后,日志管理处的手动清理日志功能被屏蔽
4. 开启数据库安全选项开启编辑
4.1 安装插件
点击下载插件:fine_conf_entity可视化配置插件
4.2 配置参数
插件安装成功后,超级管理员登录数据决策系统,点击「管理系统」,新增「系统工具」设置。如下图所示:
注:由于 FineDB 的修改非常重要,影响较大,因此仅支持超管进行操作,不支持次级管理员操作。
配置方法支持以下两种方式:
选择参数配置:系统参数名(key)下拉框中罗列了支持配置的 fine_conf_entity 参数,用户可直接在下拉框中选择参数,配置参数值(value)。
自定义参数配置:用户可自行输入支持配置的 fine_conf_entity 参数名(key),并自动跳出参数值(value),用户可修改并保存参数值。
两种配置方式支持配置的参数完全相同,建议修改的 fine_conf_entity 中的配置参数和参数值如下表所示:
参数名 | 参数作用 | 建议参数值 |
---|---|---|
SystemConfig.hideVersion | 作用:是否隐藏system info中的版本信息 true:系统信息接口不返回版本信息。 | true |
WebSocketConfig.webSocketTokenInHeader | 作用:socket 通信 token 传递方式 true:token 从请求头传输 注意: 1)有二开定制等涉及相关token传输,需评估对二开定制功能的影响。 2)使用traefik部署场景功能受影响可以不配置。 注:FineReport11.0.3至11.0.13版本,需同时配置WebSocketConfig.useJavaxWebSocket参数值为false; FineReport11.0.14及之后版本,无需配置该参数。 | true |
4.3 删除插件
参数配置完成后,需删除「fine_conf_entity可视化配置插件」。
设计器插件删除方法参照 设计器插件管理
服务器安装删除方法参照 服务器插件管理
5. 开启平台配置编辑
5.1 模板认证
作用:
需要用户登录后才可访问模板,可单独配置不需要进行认证的模板。
建议:
1)默认选择「仅认证用户名密码」,用户可自行调整切换。
2)建议针对不同模板进行具体的「角色权限认证」配置,如果过于复杂难以配置,则建议开启「仅认证用户名密码」。
2)需要认证的模板默认全选,如有部分场景需要免鉴权访问,则按需针对指定模板免认证。但不建议扩大该场景,以防有安全风险。
方法 | 简介 | 文档 |
---|---|---|
不做身份验证 | 默认不需要验证,只要得到了模板预览URL,任何人都可以查看对应的报表模板 | 不做身份验证 |
仅认证用户名密码 | 需要登录验证,登录成功后,所有用户权限都一样 只要得到了模板预览URL,登录用户都可以查看对应的报表模板 | 仅认证用户名密码 |
角色权限认证 | 需要登录验证,登录成功后,根据用户的角色信息,不同的用户有不同的权限 每个用户只能查看到有权限查看到的报表模板。 | 角色权限认证 |
数字签名认证 | 通过数字签名的方式来验证访问的报表请求,报表工程通过数字签名验证签名信息合法才允许访问报表,否则返回没有权限。 | 数字签名认证 |
注意事项:
开启模板认证,选择需要认证的模板为默认需要认证所有的模板,锁定后则表示该模板不需要进行认证。
开启后如果没有具体配置,则原先无需登录就可以访问的模板,会受到影响无法访问,要求用户登录。
设计器端预览报表,会受到模板认证的限制,可能会对模板制作时的预览造成不便。
5.2 系统管理
5.2.1 密码策略设置
作用:增加密码破解的难度。
建议:管理员登录数据决策系统,点击「管理系统>用户管理>全局设置」。
若系统使用「平台内置认证」,则需进行密码策略设置。
若系统使用「LDAP认证」或「HTTP认证」,则无需进行密码策略设置,密码安全性由客户自己的认证系统保证。
操作:管理员登录数据决策系统,点击「管理系统>系统管理>登录」,在「密码策略设置」处建议勾选以下配置:
设置密码强度策略(推荐密码长度8位,包含数字、大小写字母、符号)
设置初始密码强制修改
设置定期修改密码
设置修改密码验证方式
开启初始密码强制修改
开启历史密码重复校验
5.2.2 登录验证&锁定设置
作用:主要用于防暴力破解。
建议:
开启登录锁定。必选,最简单有效的攻击方式就是弱密码爆破进入工程,再提权或通过其他手段入侵服务器。
开启滑块验证。非必选项,如果已开启登录锁定,该项可选择不开启。
操作:管理员登录数据决策系统,点击「管理系统>系统管理>登录」,开启「登录验证」和「登录锁定>滑块验证」。