Files
YwxAppThink/.env.addon.example
T
yangwx 18101cf11a feat: 上线前安全加固与发布工程化;appmall 由插件迁移为独立应用
安全(P0)
- 发布包签名:新增 scripts/package_keygen.php、scripts/package_verify.php、
  ywxapp\service\PackageVerifier;FrameworkService::apply() 解压前强制验签
  (ywxapp.framework_package_verify,默认开启)
- JWT 收紧:config/jwt.php 移除公开默认密钥,JwtService::assertStrongSecret()
  校验非空 / 长度≥32 / 已知弱值;.env.production.example 键名由 JWT_SECRET_KEY 修正为 JWT_SECRET
- /api/v1/Article:免登录白名单收窄为只读接口,写操作字段白名单 + assertOwner() 越权校验
- 开发者令牌:查找接口不再回显明文、统一失败文案 + 限流
- TemplateInstaller:文件名白名单 + realpath 归一化 + 目录内断言,修复 Zip Slip;补 use ZipArchive
- 后台登录:接入验证码、失败锁定与登录限流(config/ratelimit.php)
- 缓存 / Session 驱动可由 .env 覆盖(CACHE_DRIVER / SESSION_TYPE),集群部署改 redis
- paycenter 支付日志开关改为 PAY_LOG,不再跟随 APP_DEBUG

工程化 / 交付
- 新增 CHANGELOG.md 与 .env.production.example;composer.lock 入库锁定依赖版本
- 插件离线安装 CLI 增加 --uid,后台上传安装透传 uid,付费插件授权校验可通过
- 授权拒绝文案区分「未携带 uid」与「未找到有效授权」,便于排障
- .gitignore 放行 .env.production.example / .env.addon.example / .gitattributes / public/.htaccess

结构
- appmall 由 addon/appmall 迁移为独立应用 app/appmall(市场 / 开发者中心 / 审核 / 分润)
2026-10-22 00:53:39 +08:00

71 lines
3.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ====================================
# 插件系统优化配置示例
# ====================================
# 将以下配置添加到您的 .env 文件中
# 应用配置
APP_DEBUG=false # 生产环境设置为false
APP_TRACE=false # 生产环境关闭页面Trace
# 数据库配置优化
DB_PERSISTENT=true # 启用数据库持久连接
DB_PARAMS=persistent:true # 数据库连接参数
# 缓存配置
CACHE_DRIVER=redis # 推荐使用Redis缓存
CACHE_PREFIX=ywxapp_cache_ # 缓存前缀
# Redis配置(如果使用Redis)
REDIS_HOST=127.0.0.1 # Redis服务器地址
REDIS_PORT=6379 # Redis端口
REDIS_PASSWORD= # Redis密码(如无密码留空)
REDIS_SELECT=0 # Redis数据库索引
# 插件安全配置
JWT_SECRET=请生成强随机密钥 # JWT密钥(使用: openssl rand -base64 64)
ADDON_SECRET=请生成强随机密钥 # 插件密钥(使用: openssl rand -base64 64)
ADDON_UNKNOWN_SOURCES=false # 禁用未知来源插件
# 插件配置
ADDON_LICENSE_CHECK=false # 是否检查插件授权
ADDON_CACHE_EXPIRE=3600 # 插件配置缓存时间(秒)
# 应用市场(appmall)插件配置
# 以下配置已迁移至插件目录 addons/appmall/config/appmall.php(支持 .env 覆盖),
# 通过 config('appmall.*') 读取。
APPMARKET_DEV_TOKEN= # 发布到官方市场(www.ywxapp.cn)的开发者令牌(运营分配),留空则后台「发布到官方市场」提示先配置
APPMARKET_DEV_NAME= # 开发者名称(可选)
APPMARKET_REMOTE_ENABLE=false # 购买链路远程化开关:true 时插件商店走中心站 market API
APPMARKET_REMOTE_TOKEN= # 远程市场服务间共享密钥(中心站与本客户端需一致)
APPMARKET_COMMISSION_RATE=0.2 # 平台抽成比例(0~1),开发者收益=订单金额*(1-该比例)
APPMARKET_SECURITY_SCAN=true # 提交包到官方市场前的安全扫描开关(PHP语法+高危函数)
APPMARKET_SSL_VERIFY=true # 连接远程市场时 SSL 证书验证(自托管/排障可设 false)
# 性能监控配置
ADDON_PERFORMANCE_MONITOR=true # 启用插件性能监控
ADDON_PERFORMANCE_THRESHOLD=2.0 # 性能阈值(秒)
ADDON_MEMORY_THRESHOLD=10485760 # 内存阈值(字节,10MB)
# 热重载配置(仅开发环境)
ADDON_HOT_RELOAD=true # 启用热重载(仅开发环境)
ADDON_HOT_RELOAD_INTERVAL=2 # 文件变更检测间隔(秒)
# 日志配置
LOG_LEVEL=info # 日志级别
LOG_CHANNEL=file # 日志通道
# ====================================
# 安全配置建议
# ====================================
# 1. 生产环境务必设置强随机密钥
# 2. 关闭调试模式
# 3. 禁用未知来源插件
# 4. 配置合适的缓存驱动
# 5. 设置合理的超时时间
# ====================================
# 密钥生成命令
# ====================================
# JWT密钥: openssl rand -base64 64
# 插件密钥: openssl rand -base64 64
# 数据库密钥: openssl rand -base64 32