安全与权限
四层权限模型
| 层级 | 适用场景 | 实现 |
|---|---|---|
| 免登录 | 官网首页、市场列表 | 不注入认证依赖 |
| 登录即可 | 个人中心、我的订单 | Depends(get_current_user) |
| 规则鉴权 | 用户、角色、插件管理 | require_permission("...") |
| 数据范围 | 只访问自己的插件或数据 | 服务层按 user_id 过滤 |
前端 v-permission 只负责隐藏按钮,不能代替后端权限检查。插件后台接口必须在服务端再次校验权限和资源归属。
密钥存储
SMTP 授权码、DeepSeek API Key 和 LemPay 商户密钥使用 ApeAdmin 核心加密能力存储。管理接口只返回“已配置”状态,不返回明文。生产环境应通过受控配置写入密钥,禁止把密钥放进插件 ZIP、日志、Markdown 文档或前端代码。
上传包检查
插件 ZIP 在分析阶段不会解压到运行目录,也不会执行其中的 Python/JavaScript。平台检查:
- 路径穿越、绝对路径和符号链接
- 加密文件、文件数量、解压总体积和异常压缩比
plugin.json必填字段及版本号一致性- 动态代码执行、系统命令、外部网络请求和疑似硬编码密钥
静态检查和 AI 分析只提供审核辅助信息,最终上线必须由管理员审核并发布。
官网内容
导航链接只允许受控的站内路径或明确允许的 HTTPS 地址。用户提交的 Markdown、图片、Demo 链接和插件文档必须经过格式校验和 HTML 清理后再公开展示。