# 安全配置
# 一、系统安全配置
# 1.开启Redis安全认证
在 Redis 配置文件 redis.conf 中设置一个全局密码,所有连接都需要使用该密码进行身份验证。
# 2.开启Nacos安全认证
默认情况下,Nacos 实例没有开启认证,所有请求都允许访问。您需要在 Nacos 配置文件中进行设置。具体参考https://nacos.io/en-us/docs/auth.html
# 3.Https配置
开启https,通过https协议访问服务器。
# 4.Nginx配置禁止使用iframe嵌套
具体配置如下:
server {
# 其他配置项
location / {
# 禁止使用 iframe 嵌入网站
add_header X-Frame-Options DENY;
# 其他配置项
}
}
# 二、应用安全配置
# 1.EOS生产环境配置
application.properties文件中,添加或者修改如下配置
eos.profiles.active=prod
# 2.关闭Swagger
governor:
governor默认已关闭
gateway:
gateway未使用swagger
afcenter:
application.properties文件中,添加或者修改如下配置
eos.springfox.enabled=false
user-config.xml文件中,
将下面swagger相关接口从白名单(Login-Filter>Exclude)中去掉。
/swagger-ui.html,/v2/api-docs,/webjars/*,/swagger-resources/*
bps:
application.properties文件中,添加或者修改如下配置
eos.springfox.enabled=false
user-config.xml文件中
将下面swagger相关接口从白名单(Login-Filter>Exclude)中去掉。
/swagger-ui.html,/v2/api-docs,/webjars/*,/swagger-resources/*
(Login-Filter>Include)中, 将<configValue key="Include">nopath</configValue>改成
<configValue key="Include">/*</configValue>
# 3.移除SDK白名单接口
user-config.xml文件中,将SDK接口从白名单(Login-Filter>Exclude)中移除,
/api/afc/afc-proxy/*
# 4.跨域配置
系统上线后,可能会存在跨域攻击的风险,因此要规避这些风险,可以在AFCenter的后端服务里配置跨域的配置,以此来达到只允许配置的域能够访问后端服务,其他的请求无法访问。
具体配置路径如下:
application.properties文件中,添加或者修改如下配置,重启服务即可生效,其中多个域名之间使用逗号进行分隔
afc.cros_allowed_origins=demo1.com,demo2.com
# 5.关闭sentinel
如果没有使用sentinel,则需要在应用的application.properties文件中,添加或者修改如下配置:
spring.cloud.sentinel.enabled=false
# 6.上传文件配置
application-afc.properties文件中,根据项目需要配置上传文件类型的白名单和黑名单
#允许上传的文件类型
afc.attachments.allow-file-types=txt,zip,pdf,md,jpg,jpeg,png,gif,docx,doc,xlsx,pptx,mp3,mp4,wav,mov
#不允许上传的文件类型
afc.attachments.not-allow-file-types=exe,msi,bat,cmd,sh,ps1,jar,py,rb,php,jsp,asp,aspx,cgi,pl,dll,sys,so,class,swf,sql,db,sqlite,mdb,accdb,ini,reg,config,env,htaccess,htpasswd
#允许上传的最大文件大小(不配置默认不限制大小,文件大小单位默认是字节,如10M,需换算为byte为:10485760)
afc.attachments.file-max-size=50
# 7.关闭actuator
user-config.xml文件中,将actuator接口从白名单(Login-Filter>Exclude)中移除,
/actuator/*
# 8.XXL-JOB访问accessTocken
应用端(执行器)的application-job.properties文件中需要配置
afc.job.executor.accessToken=accessToken-XXXXX
AFCenter(调度器)的application-job.properties文件中需要配置
xxl.job.accessToken=accessToken-XXXXX
注:accessToken-XXXXX 是需要自定义的,保证AFCenter和应用配置的是一样的即可
# 9.开启接口防篡改
打开发版的Standalone或微服务版本安装介质,找到\web\conf下提供的nginx配置文件afcenter.conf,打开文件可以看到文件内容包含如下配置:
map $uri $enable_vd {
~^/api/lowcode/debugs/breakpoints/actions/shutdown$ "";
~^/api/bfp/framework/workbench/contexts/handle/process/[0-9]+$ "";
~^/api/lowcode/resources/download/export/*$ "";
~^/api/lowcode/projects/actions/export/*$ "";
~^/api/lowcode/projects/actions/export-sdo-static-source/*$ "";
~^/api/lowcode/projects/actions/export-contributions/*$ "";
~^/api/lowcode/projects/actions/export-optional/*$ "";
~^/api/lowcode/namedsqls/actions/export-namedsql/*$ "";
~^/api/lowcode/projects/actions/export-pms/*$ "";
~^/api/eos/groovy/actions/validate-groovy$ "";
~^/api/afc/employees/array$ "";
~^/api/afc/orgs/array$ "";
~^/api/lowcode/projects/actions/export-source$ "";
~^/api/lowcode/projects/actions/export-form-vue-source$ "";
~^/api/agent/stream/sse/connect$ "";
~^/api/lowcode/projects/actions/export-app-template$ "";
~^/api/afc/i18ns/actions/export$ "";
~^/api/agent/kbases/[0-9]+/base-files$ "";
default "false";
}
# 开启防篡改的请求头开关
proxy_set_header enableVD $enable_vd;
将map $uri $enable_vd下的default "false";改为default "true";即可开启接口防篡改能力。
# 10.是否支持只允许使用get、post请求的网络架构?
私有化部署时,一些企业的网络策略上,需要对http method进行控制,低代码设计上考虑了这个安全诉求,支持用户不修改任何前后端代码,更改配置即可完成请求method的变更。
# 11.三方系统如何调用平台?
类似Gitlab等三方工具,低代码平台支持按用户以及有效时间,生成对应的token凭证,三方系统可以使用token进行集成调用。
平台还提供了统一的API网关服务,支持按不同的客户端(系统)发布不同的接口,供客户端订阅使用。
# 12.平台支持对接哪些三方认证?
目前低代码平台除了自身的认证体系外,还集成了包括钉钉、企业微信、飞书、申石等三方产品。
# 三、业务安全配置
# 1.系统管理员密码修改
admin/sysadmin内置用户密码修改
# 2.登录安全设置
在应用中心里,支持对登录进行安全配置,包括密码策略、锁定策略、多端控制等。

1、密码策略:包括密码长度设置,密码格式的定义,多长时间必须强制修改密码,初始密码强制修改等
2、锁定策略:包括连续错误多少次锁定,锁定时长,长期不登录自动锁定等
3、多端控制:包括是否允许一个账号在多个地方登录,以及是否允许使用不同类型的终端(如PC和手机就是两个不同类型的终端)
策略设置后,默认对平台上的所有用户生效,针对一些特殊账号的场景(如企业里通常对超管账号、董事长账号放开限制),则可以通过白名单进行配置。
# 3.水印配置
平台支持页面水印配置,包括宽度、高度、旋转角度、透明度等,水印内容支持固定字符,也可以是当前用户和时间相关的动态值。与登录安全一样,也支持对特殊账号进行白名单设置。

# 4.三员管理
平台默认提供了三员管理的内置配置,支持系统管理员、安全保密管理员、安全审计员的权限分离,也支持用户按需进行调整。

# 5.审计日志
低代码平台提供完整的审计日志,支持页面查询以及快速导出,每条审计日志还可以追踪操作详情,如业务对象更改前和更改后的属性差异对比等。

# 6.权限配置
数据权限配置:对应用的数据实体,配置数据权限,支持行权限的配置。具体可以参考数据权限。
菜单、按钮、服务等其他权限配置请参考文档权限专题。