
战略品牌合作方
VMRACK.NET | 让Dujiao-Next部署更简单
⚡️官方合作闪购款,仅需76刀/年,三网优化线路,助力您业务起飞,支持:支付宝/paypal/USDT。点我享低价独家闪购!🎉







更新时间:2026-03-28
本指南介绍 Dujiao-Next 生产环境的安全配置建议。
config.yml 中的 app.secret_key 用于 AES-256 加密敏感数据(如支付渠道密钥、Bot Token 等)。
app:
secret_key: "<第 1 个 openssl 输出>"要求:
生成随机密钥:
openssl rand -hex 32管理员和用户使用独立的 JWT 密钥:
jwt:
secret: "<第 2 个 openssl 输出>"
expire_hours: 24
user_jwt:
secret: "<第 3 个 openssl 输出>"
expire_hours: 24
remember_me_expire_hours: 168建议:
app.secret_key、管理员 JWT 和用户 JWT 三个密钥必须分别生成、彼此不同当前版本会拒绝使用默认值、已知占位值、少于 32 个字符或相互重复的运行时密钥启动。
系统内置登录限流防暴力破解:
security:
login_rate_limit:
window_seconds: 300 # 检测窗口(默认 5 分钟)
max_attempts: 5 # 最大失败次数
block_seconds: 900 # 锁定时长(默认 15 分钟)同一账号在 window_seconds 内连续失败 max_attempts 次后,锁定 block_seconds 秒。
登录限流依赖 Redis,关闭 Redis 后此功能不可用。
security:
password_policy:
min_length: 8 # 最短长度
require_upper: true # 必须包含大写字母
require_lower: true # 必须包含小写字母
require_number: true # 必须包含数字
require_special: false # 是否要求特殊字符密码策略在用户注册和修改密码时生效。建议生产环境至少保持默认配置。
系统支持两种验证码方案:
captcha:
provider: "image"
scenes:
login: true
register_send_code: true
reset_send_code: true
guest_create_order: true
image:
length: 5
expire_seconds: 300captcha:
provider: "turnstile"
scenes:
login: true
register_send_code: true
turnstile:
site_key: "你的站点密钥"
secret_key: "你的密钥"建议: 生产环境至少为登录和注册场景开启验证码。Turnstile 体验更好,图片验证码不依赖外部服务。
生产环境必须使用 HTTPS:
收紧 CORS,仅允许你的站点域名:
cors:
allowed_origins:
- "https://shop.example.com" # 前台与后台同域,只需要这一个
allowed_methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"]
allow_credentials: true
max_age: 600注意: 默认 allowed_origins 为 ["*"](允许所有来源),生产环境务必修改。
生产环境务必将服务器设为 release 模式:
server:
mode: releasedebug 模式会输出详细调试信息,可能泄露敏感数据。
限制上传文件的类型和大小:
upload:
max_size: 10485760 # 最大 10MB
allowed_types:
- "image/jpeg"
- "image/png"
- "image/gif"
- "image/webp"
allowed_extensions:
- ".jpg"
- ".jpeg"
- ".png"
- ".gif"
- ".webp"
max_width: 4096
max_height: 4096系统同时校验文件 MIME 类型和扩展名,防止非图片文件上传。
以下数据使用 AES-256-GCM 加密存储:
用户和管理员密码使用 bcrypt 哈希存储,不可逆。
站点对接 API 使用 HMAC-SHA256 签名验证请求,防止篡改。
部署到生产环境前,确认以下事项:
app.secret_key、jwt.secret、user_jwt.secret 已换成三个彼此不同、至少 32 个字符的随机密钥app.secret_key 已与数据库备份配套保存bootstrap 中的默认管理员密码server.mode 为 releaseallowed_origins 为实际域名