历史版本6 :产品安全加固指导手册 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本
4.0

1.2 应用场景

为了提升产品的安全性,本文整理了,正式工程中应当开启的相关安全设置,请参照本文对工程进行安全加固。

注:参照本文进行安全配置后,部分功能会有影响,主要面向安全诉求更高的客户。

2. 产品升级编辑

2.1 升级主JAR

背景说明:

修复之前版本中存在的一些问题,建议将主产品升级到安全版本。

操作步骤:

1)下载并解压获取JAR包文件:FineDataLink4.0.24.3护网定制版本

2)参考 FDL独立部署升级 进行服务器升级操作(jar包文件获取仍参考本文)

2.2 升级sqlite驱动

背景说明:

产品默认内置了sqlite驱动,如驱动版本为3.41及之前版本,建议升级到更安全版本。

操作步骤:

1)备份工程,关闭工程

2)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称为sqlite-jdbc-xxxx.jar的jar包

3)下载驱动:sqlite驱动安全版本,将jar包上传到%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下

4)重启工程,完成升级

2.3 升级netty相关JAR包

如已执行2.1节升级主jar操作,可跳过本节内容。

面对对象:

FineDataLink4.0.13及以下版本

背景说明:

产品默认内置了netty相关JAR包,建议升级到更安全版本。

操作步骤:

1)备份工程,关闭工程

2)手动删除工程%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下名称包含netty的相关jar包

3)下载驱动:netty安全驱动,将jar包上传到%Tomcat_HOME%/webapps/webroot/WEB-INF/lib下

4)重启工程,完成升级

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可视化配置插件

插件安装成功后,超级管理员登录FineDataLink,点击「管理系统」,新增「系统工具」设置。如下图所示:

注:由于 FineDB 的修改非常重要,影响较大,因此仅支持超管进行操作,不支持次级管理员操作。

4.2 参数配置

配置方法支持以下两种:

  • 选择参数配置:系统参数名(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部署场景功能受影响可以不配置。

注:FineDataLink4.0.19及之前版本,需同时配置WebSocketConfig.useJavaxWebSocket参数值为false;

FineDataLink4.0.20及之后版本,无需配置该参数。

true

修改以下配置参数和参数值时有一些注意事项:

1)以下参数无法通过「fine_conf_entity可视化配置插件」进行修改,需手动修改或通过联系数据库管理员修改配置库的方式进行修改。

如果 fine_conf_entity 表中不存在以下配置项,新增一条记录,输入参数和相应参数值即可。

操作方法请参考:手动修改fine_conf_entity 。

参数名
参数作用建议参数值
PluginFileValidateConfig.fileValidateOpen作用:本地安装/手动安装插件时,为了防止恶意篡改插件包中的代码,2021.11.24 及之后的版本,提供插件完整性校验功能。该功能默认关闭。

true:插件包完整性校验开启

注意:开启后无法从页面上安装没有官方签名的插件。

true
SystemConfig.driverUpload

作用:是否允许在驱动管理中上传驱动 JAR 包。

true:允许上传驱动 JAR 包。

false
RemoteConnectionConfig.enableWhitelistVerify

作用:针对 channel 接口反序列化漏洞对远程设计可能的影响,可通过配置限制访问 IP 来防止恶意输入行

true:对远程设计连接接口进行 IP 白名单校验。

注意:开启后,白名单以外的 IP 无法进行远程设计连接。

true

RemoteConnectionConfig.ipWhiteList前提:开启上一个白名单校验。

作用:用于配置白名单内容,白名单内的 URL 连接成功,相应功能不受影响。

值为 IP 段,且为数组形式

格式:

["item1",”item2”]

示例:

["119.0.0.1", "127.0.*.*", "119.0.0.1/24"]

5. 开启平台配置编辑

5.1 系统管理

5.1.1 可选:单一登录

作用:限制账号同时只能在一处登录。

建议:建议开启,如果有多用户共用账号需求可不开。

操作:管理员登录FineDataLink,点击「管理系统>系统管理>登录」,开启「单一登录」。

5.1.2 可选:登录超时时间

作用:无操作 X 分钟后会话失效。

建议:建议配置为 10 分钟。

操作:管理员登录 FineDataLink,点击「管理系统>系统管理>登录」,设置「登录超时时间」为「10」分钟。

5.1.3 密码策略设置

作用:增加密码破解的难度。

建议:管理员登录FineDataLink,点击「管理系统>用户管理>全局设置」。

  • 若系统使用「平台内置认证」,则需进行密码策略设置。

  • 若系统使用「LDAP认证」或「HTTP认证」,则无需进行密码策略设置,密码安全性由客户自己的认证系统保证。

操作:管理员登录FineDataLink,点击「管理系统>系统管理>登录」,在「密码策略设置」处建议勾选以下配置:

  • 设置密码强度策略(推荐密码长度8位,包含数字、大小写字母、符号)

  • 设置初始密码强制修改

  • 设置定期修改密码

  • 设置修改密码验证方式

  • 开启初始密码强制修改

  • 开启历史密码重复校验

5.1.4 登录验证&锁定设置

作用:主要用于防暴力破解。

建议:

  • 开启登录锁定。必选,最简单有效的攻击方式就是弱密码爆破进入工程,再提权或通过其他手段入侵服务器。

  • 开启滑块验证。非必选项,如果已开启登录锁定,该项可选择不开启。

操作:管理员登录FineDataLink,点击「管理系统>系统管理>登录」,开启「登录验证」和「登录锁定>滑块验证」。

5.1.5 可选:开启短信和邮箱验证

操作:非必选项。

请管理员先配置 短信 和 邮箱 功能,并为系统内的每一个用户配置手机号和邮箱。

管理员登录FineDataLink,点击「管理系统>系统管理>登录」,开启以下功能:

  • 忘记密码:短信验证重置密码、邮箱验证重置密码

  • 修改密码验证方式:短信验证和邮件验证

  • 登录验证设置:短信验证和邮件验证

5.1.6 可选:WebSocket设置

作用:WebSocket可以让服务器端主动向客户端推送数据,主要用于 token、用户被踢出、平台消息、内存和 CPU 显示、定时任务运行日志推送、数据连接编辑状态的确定。

说明:新增一个容器 websocket 方案,帮助用户实现快速配置 websocket 端口。若「管理系统>系统管理>常规」页面不显示 HTTPS 设置项,说明此方案生效,Websocket 连接已正确配置,无需其他任何手动配置。

操作:配置过程中问题可参考官方帮助文档:Websocket简介

5.2 安全管理

5.2.1 安全防护

设置项作用
Cookie 增强对当前协议进行检测
HSTS 设置服务器开启 HTTPS 后方可开启该按钮,开启后将禁止 HTTP 访问,IE11 以下浏览器暂不支持此设置。
文件上传校验开启后对上传文件的后缀和大小进行校验。开启后,允许上传白名单中的文件类型包括:jpg , jpeg , gif , bmp , png , pdf , doc , docx , ppt , pptx , xls , xlsx , zip。
Security Headers安全头系列设置,开启后将给请求头附加 HTTP Security Headers 属性,阻止漏洞攻击。
请求响应优化按钮关闭时,显示详细堆栈信息,开启时,所有堆栈信息统一转为简单的错误信息提示:请求错误,如需查看详细错误信息请至安全管理页面进行设置。
Token认证增强服务器增加IP校验:IP相同则自动放行;IP不同则识别为新的客户端,自动跳转到登录页,需要重新登录。

操作:管理员登录FineDataLink,点击「管理系统>安全管理>安全防护」,全部开启:

注1:若工程为http工程,无法开启「Cookie增强」和「HSTS设置」。

注2:若有报错定位需要,不介意抛出堆栈信息,可不开启「请求响应优化」。

5.2.2 SQL防注入

作用:SQL 防注入功能,针对提交的参数请求进行拦截。可实现:

  • 禁用特殊关键字防止 SQL 注入。

  • 通过字符转义防止 SQL 注入。

说明:支持通过特殊关键字防止SQL注入,转义字符默认不开启。

操作:管理员登录FineDataLink,点击「管理系统>安全管理>SQL防注入」,默认开启。