Skip to content

安全设置

ZgAdmin 提供完整的安全策略配置,包括密码复杂度策略、账户锁定策略、验证码开关和 IP 黑白名单。

功能概览

  • 密码复杂度策略(长度、大小写、数字、特殊字符)
  • 密码历史检查(防止重复使用近期密码)
  • 账户锁定策略(失败次数 + 锁定时长)
  • 登录验证码开关
  • IP 黑白名单管理

密码策略

配置项字段默认值范围
最小密码长度min_password_length86–32
需要大写字母require_uppercasetrue
需要小写字母require_lowercasetrue
需要数字require_digittrue
需要特殊字符require_specialfalse
密码历史检查数password_history_count30–24

password_history_count 设为 0 表示不检查历史密码。设为 N 表示不允许使用最近 N 次的密码。

账户锁定策略

配置项字段默认值范围
最大登录尝试次数max_login_attempts53–20
锁定时长(分钟)lockout_duration_minutes305–1440

连续登录失败达到最大次数后,账户将被锁定指定时长。

验证码

配置项字段默认值
启用验证码captcha_enabledtrue

启用后,登录页面将展示服务端生成的验证码。

IP 黑白名单

支持添加 IP 或 CIDR 规则:

规则类型说明优先级
whitelist白名单,允许指定 IP 访问黑名单优先
blacklist黑名单,拒绝指定 IP 访问高于白名单

优先级规则:如果同一 IP 同时匹配黑名单和白名单,黑名单优先。

支持的格式

  • 单个 IP:192.168.1.100
  • CIDR 段:10.0.0.0/24

规则属性

字段说明
ip_cidrIP 地址或 CIDR
rule_typewhitelist / blacklist
description规则描述
is_active是否启用

后端 API

所有接口前缀:/api/v1/settings/security

方法路径说明
GET/policy获取安全策略
POST/policy更新安全策略
GET/ip-rules获取 IP 规则列表
POST/ip-rules新增 IP 规则
POST/ip-rules/update更新 IP 规则
POST/ip-rules/delete删除 IP 规则(传 ID 数组)

请求示例

更新安全策略

json
POST /api/v1/settings/security/policy
{
  "min_password_length": 10,
  "require_uppercase": true,
  "require_lowercase": true,
  "require_digit": true,
  "require_special": true,
  "password_history_count": 5,
  "max_login_attempts": 3,
  "lockout_duration_minutes": 60,
  "captcha_enabled": true
}

新增 IP 规则

json
POST /api/v1/settings/security/ip-rules
{
  "ip_cidr": "10.0.0.0/24",
  "rule_type": "whitelist",
  "description": "内网白名单",
  "is_active": true
}

前端使用

路径:系统设置 → 安全设置/settings/security

页面分为两个卡片:

  1. 安全策略配置:表单配置密码策略和锁定策略,修改后点"保存策略"
  2. IP 黑白名单:表格展示规则列表,支持新增、编辑、删除

配置存储

安全策略和 IP 规则存储在 INI 配置文件中,修改后无需重启服务即可生效。

数据模型

SecurityPolicy

字段类型说明
min_password_lengthint最小密码长度
require_uppercasebool需要大写字母
require_lowercasebool需要小写字母
require_digitbool需要数字
require_specialbool需要特殊字符
password_history_countint密码历史检查数
max_login_attemptsint最大登录尝试次数
lockout_duration_minutesint锁定时长(分钟)
captcha_enabledbool是否启用验证码

IPRule

字段类型说明
idUUID主键
ip_cidrstrIP/CIDR
rule_typestrwhitelist / blacklist
descriptionstr描述
is_activebool是否启用
created_atdatetime创建时间

基于 MIT 许可发布