# 安全设置
SuccBI提供了丰富的安全相关设置选项,包括登录安全、密码安全、安全等保、数据加密脱敏等,通过进行合理的设置可以让系统通过各种相关安全评测,具体设置界面如下图:
# 密码安全
用户密码的相关设置,在这里可以设置密码存储、密码强度、有效期、密码重置。
# 密码存储
可以在这里设置密码加密算法,常见的加密算法有SHA1
、MD5
、SM3
,也可以选择脚本
实现相关函数,具体方法见钩子脚本security.action,选择明文
后就会明文存储,不使用加密算法。设置对应的加密算法保存后,用户下次修改密码后,密码存储就会使用对应的加密算法。
# 密码强度
设置了密码强度后,用户第一次登录若使用默认密码,则需要修改密码才能登录。当管理员修改了密码强度,用户第二次登录时若密码不符合密码强度规则,则会根据对应强度规则给出修改建议。
- 密码最小长度
- 必须包含大小写字母
- 必须包含数字
- 必须包含特殊字符
- 不能包含用户id
- 容易被黑的密码:若新密码匹配到此处的规则,则会提示密码太过简单,这里使用枚举方式设定规则
- 密码强度匹配:这里是一个正则表达式
- 密码强度显示:当密码未满足密码强度匹配的要求时,给用户的提示信息
以上几点是并列关系,可以同时设置,都会生效。
# 自动检查密码
- 登陆时校验强度:开启密码校验后,如果账号密码不满足密码强度的校验,则需要先修改密码,才能登录。
- 默认密码检查:开启默认密码检查后,如果用户从来没有修改过密码,则需要先修改密码,才能登录。
- 记住我的登录状态:勾选这里的选项后,登录页面会出现
记住我的登录状态
的勾选框,作用于PC端。 - 记住登录状态的天数:设置了数字以后,表示登录状态最长记录多少天,超过这个天数后就需要重新登录。
- 密码最长无修改天数:当密码的最后修改时间距离当前系统时间大于密码最长无修改天数时,登录后会自动定位到密码修改页面,用户必须修改密码后才能继续操作。
# 密码修改
- 密码历史记录数:系统会对已经设置了的密码进行记录,这里表示可被记录的历史条数,如果历史条目数达到上限,会将最先记录的删除,并将新的记录添加进去。修改密码时,不能使用最近记录历史的密码。
- 短信重置密码:通过这里的设置,可以启用通过手机短信重置密码,参考重置密码
# 登录安全
用户登录过程中的相关设置,这里的设置可以影响登录界面的效果,也会影响登录步骤。修改属性后,可点击底部的保存按钮,让登录安全设置生效。
# 登录验证
- 锁定账号:开启锁定账号后,当用户使用密码登录失败的次数到达显示警告前尝试次数设定的值时,系统会开始提示用户距账户被锁定的剩余尝试次数,若失败次数达到锁定前尝试次数后,再登录失败就会锁定账户。
TIP
显示警告前尝试次数与锁定前尝试次数相等的话,表示不提示,前者一般要小于后者。
- 验证码:开启验证码后,用户重复登录的次数达到显示验证码前尝试次数设定的值时,登录界面就会出现验证码,此时登录,必须要输入正确的验证码才能登录成功。可以设置验证码的字符长度,一般默认为4位。
# 登录方式
- 允许用户同时多次登录:开启允许用户同时多次登录后,使用同一账号可以同时在多处设备登录。没有开启的话,在多处设备登录的话,则会给出提示,提示可以选择继续登录。
- 启用URL登录:开启允许URL登录后,可以直接在url上携带用户密码登录到系统中,参考URL参数传递用户名密码登录。为安全考虑,默认是不允许开启的。
- 启用短信验证码登录:启用后,用户将可以使用账号所绑定手机号获取验证码进行登录,参考登录API,这里会影响到登录页登录框的效果,参考登录页用户登录模式设置
- 启用手机密码登录:开启手机密码登录后,用户将可以在登录界面使用手机号替代用户ID,并且在输入正确密码后登录到系统中,这里的手机号即用户表PHONE字段
TIP
如果用户信息里面没有手机号码,是无法登录的,需要先把手机号码更新
# 用户登录
- 启用匿名用户:启用匿名用户登录后,在用户组中给匿名用户组分配权限,即可不登录访问资源。
- 启用外部用户:启用外部用户登录后,会影响到登录页登录框的效果,参考登录页用户登录模式设置
- 外部用户登录方式:用于控制默认登录界面会针对外部用户展示哪些登录方式,有默认账号登录、手机短信登录、二维码登录方式可供选择。
- 系统用户登录方式:用于控制默认登录界面会针对系统用户展示哪些登录方式。有默认账号登录、手机短信登录、二维码登录方式可供选择。如果系统用户和外部用户都没有选择任何一种登录方式,默认会开启使用系统账号登录方式。
- 启用系统用户双重登录校验:开启系统用户双重登录校验后,系统用户在登录的时候需要在正确输入账号密码后,再次输入手机验证码才能正确登录。
- 启用外部用户双重登录校验:开启外部用户双重登录校验后,外部用户在登录的时候需要在正确输入账号密码后,再次输入手机验证码才能正确登录。
# 安全等保
用户使用过程中数据、请求的相关设置,这里的设置影响到数据、请求的安全策略。
# 禁用WebDAV
禁用WebDAV后,在元数据界面和app编辑器中,将无法使用右键编辑打开对应的word,excel和PPT页面。
# 启用Ajax加密
开启Ajax加密后,所有的Ajax请求,包括body和url都会进行加密,且服务器返回的所有json信息也会被加密。
开启此选项对系统性能有一定影响,在安全评测报告Ajax请求参数或服务器返回内容有不合法内容时可考虑开启。
# Cookie安全传输
开启Cookie安全传输后,只有使用https等加密协议访问系统时,cookie才会被正确设置,可以通过Cookie SameSite
设置关闭Cookie限制的请求,具体可参照cookie-samesite。
# 启用跨域
开启启动跨域后,在跨域信任域
中可设置信任域如域名、指定ip,使满足设置的跨域请求被当前服务器接收,信任域的设置规则如下:
- 使用https协议:如
https://www.xxx.com
,表示只信任https协议的域名 - 使用http协议:如
http://www.xxx.com
,表示信任http和https协议的域名 - 使用带端口的域或ip:如
http://192.168.1.1:8080
,表示信任指定端口的域名或者ip
注意:当使用ajax跨域请求的时候需要针对 XMLHttpRequest
配置上 withCredentials=true
(参考文档 (opens new window)),否则可能会因为cookie没有传递给服务器,导致请求响应错误。
# 禁止被嵌入外站Iframe
禁止被嵌入外站Iframe后,响应头中会增加响应头X-Frame-Options:SAMEORIGIN
,禁止将本系统的页面嵌入到其他网站页面中。
# 启用防MIME嗅探
用于防止基于MIME类型混淆的攻击,启用防MIME嗅探后,响应头会设置X-Content-Type-Options:nosniff
,如下请求会被阻止:
- 请求类型是"style",但MIME类型不是"text/css"
- 请求类型是"script",但MIME类型不是JavaScript MIME类型
# 启用内容安全策略
启用内容安全策略后会将响应头X-XSS-Protection
设置为1; mode=block
,来通知浏览器开启XSS检测,并可通过安全策略内容
设置Content-Security-Policy中的内容,具体介绍可参照XSS信息 (opens new window)和Content-Security-Policy信息 (opens new window)
# 显示查询SQL
启用之后将在查询结果中输出SQL、查询的Query等信息,SQL属于敏感信息,一般不会输出到计算日志中。在测试阶段,为了方便了解系统执行的SQL可以开启,此选项一般用于测试阶段,正式交付此选项不进行启用。
# 阈值设置
环境运行时阈值的相关设置,这里可以设置短信验证码、上传文件大小阈值、HTTPClient连接等。
# 短信验证码
勾选启用短信验证码登录后生效,用户使用短信验证码方式登录时,系统可以对验证码的长度、发送频率、有效时长做出一些设置,也可以指定验证码重试次数以及锁定时长。
- 短信验证码长度,一般默认为6个字符
- 验证码发送频率,重发验证码的最短时间间隔
- 验证码有效时长,默认为10分钟
- 手机短信锁定时长,超过
短信验证码重试次数
后的锁定时长,默认锁定时长为10分钟 - 短信验证码重试次数,手机号被锁定前,可以尝试输入验证码的次数,默认为5次
# 文件上传大小
- 上传文件阈值:用户单次上传文件的大小限制,单位为Kb,默认为102400Kb(100Mb)
- 允许上传的文件类型:允许用户上传文件的类型,多个文件类型用逗号隔开
- 上传视频文件阈值:用户单次上传视频文件的大小限制,单位Kb,默认为51200Kb(50Mb)
- 上传图片文件阈值:用户单次上传图片文件的大小限制,单位为Kb,默认为10240Kb(10Mb)
- 上传3D模型阈值:用户上传3D模型文件的大小限制,单位为Kb,默认为5120Kb(5Mb)
# 数据查询阈值
设置用户使用一次SQL查询最多可以返回多少行数据,默认返回500000行。
# 缓存阈值
- 维表内存缓存阈值:维表数据一次缓存到内存的最大行数,当维表数据小于阈值时,可全量读取到内存以提高运行效率,默认为1000000行。
- 静态文件缓存秒数:元数据库中的静态文件如图片、js文件、css文件等在浏览器中进行缓存的有效时间,默认为3600秒。
# HTTPClient连接
- HTTPClient连接池大小:系统访问第三方服务时需要http连接池来提高性能,默认为50,修改此参数会同步修改http中的maxPoolSize参数。
- HTTPClient最大保持连接时间:客户端与服务端建立持久连接的最大连接时间,超过此时间,连接会被回收。默认为30000,修改此参数会同步修改http中的keepAliveTime参数。
- HTTPClient与服务端建立连接的超时时间:客户端与服务端建立连接的超时时间,超过此时间,客户端会停止请求。默认为10000,修改此参数会同步修改http中的connectionTimeout参数。
- HTTPClient等待服务端响应数据的超时时间:客户端与服务端建立连接时,等待服务端响应的超时时间,超过该时间,客户端会停止请求。默认为5000,修修改此参数会同步修改http中的socketTimeout参数。
# 缓慢变化数据全量下载阈值
在模型设置缓慢变化时,所有历史数据下载到前端浏览器的阈值,默认为50000行,设置方法可参照缓慢变化数据提取
# 调度线程池最大线程
执行计划任务时的最多可用线程数目,默认为20线程,计划任务的设置方法可参照计划管理
# 回归测试
环境升级或者系统修改配置后进行回归测试的相关设置,这里的设置影响回归测试脚本
的启用及可用于回归测试的测试用户
。
- 启用回归测试脚本:勾选启用回归测试脚本后,用户可在元数据项目新建test目录,添加回归测试脚本进行测试。具体测试方法可参照回归测试
- 测试用户:勾选
启用回归测试脚本
后生效,用于设置测试过程中可使用的账号。执行回归测试过程中,管理员可以用这些用户身份进行免密登录测试。若设置多个账号,各个账号需以逗号隔开。
# 日志记录
环境运行时日志记录的相关设置,这里的设置影响日志的记录级别、清理时间、保留期限等。修改完毕后,可点击底部的保存按钮,让日志记录设置生效。
# 系统日志设置
- 日志信息:系统日志表中记录的日志信息的级别,分为
OFF
、FATAL
、ERROR
、IMPT
、INFO
、VERB
和ALL
,日志记录越详细,占用的数据库空间越大,日常生产环境建议使用INFO
级别的日志记录,日志级别描述如下:
日志级别 | 级别描述 |
---|---|
ERROR | 错误 |
FATAL | 严重 |
IMPT | 重要 |
INFO | 信息 |
OFF | 关闭 |
VERB | 详细 |
ALL | 所有 |
- 当前日志表大小:记录当前系统日志表的行数和表大小,系统日志表的介绍可参照LOG_SYS-系统日志表
- 自动清理日志:勾选自动清理日志后,可根据
清理时间
和保留最近日志
设定日志清理周期和日志保留期限。
# 元数据文件历史日志设置
- 记录文件修改历史:勾选记录文件修改历史后,可在文件的属性栏查看该文件的历史版本内容,可较方便查看和对比文件修改历史。
- 当前文件历史表大小:当前记录文件修改历史的表的大小,历史版本表的介绍可参照META_REVISIONS-历史版本表
- 智能清理文件历史:勾选
记录文件修改历史
后生效,定时清理历史版本表的历史记录,只保留最近一周所有修改记录以及最近一年中每天的最晚修改记录。 - 脚本输出日志限制:设置脚本文件一次执行时使用print函数最多输出多少条日志,默认为10000条。
# 数据脱敏
当前系统中对数据脱敏策略的设置,系统默认自带身份证号
、手机号
、姓名
等常见脱敏策略供使用,你可以点击编辑进行修改,也可以点击添加新增脱敏规则。添加修改完毕后,点击底部的保存
按钮生效。模型中使用数据脱敏可参考脱敏和加密
# 掩码数据脱敏
掩码方式数据脱敏配置如下:
- ID:脱敏规则分配的唯一id,新建脱敏规则时由系统自动分配
- 标题:对脱敏规则的描述,必填
- 脱敏方式:脱敏方式选择掩码方式
- 掩码设置:可设置脱敏数据开头和末尾字符的保留个数以及替换掩码的字符
- 测试示例:输入测试示例后,可显示脱敏后的结果,必填
# 正则表达式数据脱敏
正则表达式数据脱敏配置如下:
- ID:脱敏规则分配的唯一id,新建脱敏规则时由系统自动分配
- 标题:对脱敏规则的描述,必填
- 脱敏方式:脱敏方式选择正则表达式
- 正则表达式:脱敏数据的正则表达式写法
- 替换为:将脱敏数据替换后的写法,此处也为正则表达式
- 测试示例:输入测试示例后,可显示脱敏后的结果,必填
# 数据加密
当前系统中对数据加密策略的设置,内置的加密算法有SM4
和AES
,用户可根据需要自行添加或修改加密策略。添加修改完毕后,点击底部的保存
按钮生效,模型中使用数据加密可参考脱敏和加密
警告
若修改已有加密策略中的密钥,会导致以前加密的数据无法解密!
数据加密配置如下:
- ID:加密策略分配的唯一ID,新建加密策略时由系统自动分配
- 标题:对加密策略的描述,必填
- 算法:可选择SM4算法或者AES算法
- 密钥:加密策略使用的密钥,可自行填写,也可由系统自动生成,必填