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

目录:

1. 概述编辑

1.1 版本

产品版本
FineBI
5.0、5.1
FineReport10.0、11.0

1.2 应用场景

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

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

2. 管理平台相关设置编辑

2.1 系统管理

2.1.1 可选:单一登录

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

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

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

2.1.2 可选:登录超时时间

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

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

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

2.1.3 密码策略设置

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

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

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

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

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

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

  • 设置初始密码强制修改

  • 设置定期修改密码

  • 设置修改密码验证方式

  • 开启初始密码强制修改

  • 开启历史密码重复校验

2.1.4 登录验证&锁定设置

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

建议:

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

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

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

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

操作:非必选项。

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

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

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

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

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

2.1.6 可选:WebSocket设置

作用:WebSocket可以让服务器端主动向客户端推送数据,主要用于刷新 token、用户被踢出、平台消息、内存和 CPU 显示、平台日志处当前系统在线人数、数据连接编辑状态的确定。

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

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

2.2 安全管理

2.2.1 安全防护

作用:更多说明请参见:安全防护

设置项作用
Cookie 增强对当前协议进行检测
HSTS 设置服务器开启 HTTPS 后方可开启该按钮,开启后将禁止 HTTP 访问,IE11 以下浏览器暂不支持此设置。
文件上传校验开启后对填报及平台外观配置中上传文件的后缀和大小进行校验。开启后,允许上传白名单中的文件类型包括:jpg , jpeg , gif , bmp , png , pdf , doc , docx , ppt , pptx , xls , xlsx , zip。
脚本调用公式限制JS 中FR.remoteEvaluate和FR.remoteEvaluateAsync这两个接口的频率较高,但这两个接口也存在巨大的安全风险,可能会导致攻击者实现对数据库的增删改查等操作,其风险等级相当于远程执行。
Security Headers安全头系列设置,开启后将给请求头附加 HTTP Security Headers 属性,阻止漏洞攻击。
请求响应优化按钮关闭时,显示详细堆栈信息,开启时,所有堆栈信息统一转为简单的错误信息提示:请求错误,如需查看详细错误信息请至安全管理页面进行设置。
Token认证增强服务器增加IP校验:IP相同则自动放行;IP不同则识别为新的客户端,自动跳转到登录页,需要重新登录。

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

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

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

2.2.2 访问控制

作用:开启后,可以对一定时间内的访问次数进行限制,超出则拉入黑名单,无法再进行资源访问,可有效缓解异常访问,爬虫爬取和 CC 攻击的情况。

建议:默认开启。使用默认频率限制

操作:管理员登录数据决策系统,点击「管理系统>安全管理>访问控制」,默认开启。

2.2.3 SQL防注入

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

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

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

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

SQL 防注入功能,主要针对FineReport模板发出的参数请求进行拦截,不会对整个 SQL 语句进行筛选拦截,也不会对全局的请求都筛选拦截。

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

2.2.4 可选:水印设置

作用:水印是一种防止数据泄露的有效方式:

  • 在内部员工截图或者导出相关资料时,可以提醒员工这是绝密资料,禁止外传。

  • 在员工泄露内部资料后,方便企业追查责任人和泄漏源。

操作:管理员登录数据决策系统,点击「管理系统>安全管理>水印设置」,默认开启。

2.3 模板认证

作用:系统管理员可以通过四种方式控制用户查看报表的行为。

方法
简介文档
不做身份验证默认不需要验证,只要得到了模板预览URL,任何人都可以查看对应的报表模板不做身份验证
仅认证用户名密码

需要登录验证,登录成功后,所有用户权限都一样

只要得到了模板预览URL,登录用户都可以查看对应的报表模板

仅认证用户名密码
角色权限认证

需要登录验证,登录成功后,根据用户的角色信息,不同的用户有不同的权限

每个用户只能查看到有权限查看到的报表模板。

角色权限认证
数字签名认证通过数字签名的方式来验证访问的报表请求,报表工程通过数字签名验证签名信息合法才允许访问报表,否则返回没有权限。数字签名认证

注意事项:

  • 开启模板认证,选择需要认证的模板为默认需要认证所有的模板,锁定后则表示该模板不需要进行认证。

  • 开启后如果没有具体配置,则原先无需登录就可以访问的模板,会受到影响无法访问,要求用户登录。

  • 设计器端预览报表,会受到模板认证的限制,可能会对模板制作时的预览造成不便。

3. 产品安全插件安装编辑

插件名称
作用安装说明
XSS过滤器插件部分请求存在存储型XSS,插件统一处理

点击下载FR11.0&BI5.1.19及之后版本插件:

XSS过滤器插件

点击下载FR10.0&BI5.1.19之前版本插件:

fr-plugin-xss-filter-1.3.zip

安装配置文档:XSS过滤器插件

PUT、DELETE请求转成POST将PUT、DELETE 请求转成POST

点击下载插件:PUT、DELETE请求转成POST 插件

安装配置文档:PUT、DELETE请求转成POST插件

安全加固插件作用:对于被爆破了账密的系统能有效提升服务器安全性

注意事项:

1)插件安装后,需要重启生效

2)插件安装后,数据连接处的SQL验证查询功能不可用

3)插件安装后,不可添加JNDI数据连接

4)插件安装后,水印设置禁用部分函数

5)插件安装后,日志管理处的手动清理日志功能被屏蔽

点击下载FR11.0&BI5.1.19及之后版本插件:

fr-plugin-decision-hw-security-1.0(11).zip

点击下载FR10.0&BI5.1.19之前版本插件:

fr-plugin-decision-hw-security-1.0.zip

4. 数据库安全选项开启编辑

4.1 插件安装和使用

点击下载插件:fine_conf_entity可视化配置插件

设计器插件安装方法参照 设计器插件管理 

服务器安装插件方法参照 服务器插件管理

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

注:由于 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部署场景功能受影响可以不配置。

true
PluginFileValidateConfig.fileValidateOpen

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

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

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

true

5. 插件升级与卸载编辑

5.1 插件升级

1)工程上,建议仅保留使用的插件,不使用的插件全部卸载。

2)工程上所有的插件,全部更新至最新版本,服务器安装插件方法参照:服务器插件管理

5.2 高权限插件卸载

插件名称
处理方式
说明
数知鸟插件禁用
新增的数据需求管理模块,若未用到则护网或攻防阶段禁用。
fine_conf_entity可视化配置插件卸载临时系统参数配置插件,权限过高卸载。
开放平台BETA
卸载涉及到密钥传输和签名认证,有一定安全风险,建议护网或攻防阶段卸载。
BI定位分析工具卸载权限过高,建议护网或攻防阶段卸载。