
戰略品牌合作夥伴
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 為實際網域