degun-osint/CTFd-Beta-Tester
GitHub: degun-osint/CTFd-Beta-Tester
一款CTFd插件,允许管理员指定特定用户为beta tester,在比赛正式开始前提前访问题目以进行测试。
Stars: 0 | Forks: 0
# CTFd Beta Tester Plugin
一款用于 CTFd 的插件,允许管理员将特定用户指定为 beta tester,使他们能够在正式 CTF 开始时间之前访问题目。
## 概述
该插件最初是为 [Oscar Zulu](https://oscarzulu.org) 开发的,旨在方便在比赛开始前进行题目测试,现在正提供给更广泛的 CTF 创建者社区使用。
## 功能
- 将用户指定为 beta tester,使他们能够在 CTF 开始前访问题目
- Beta tester 保留普通用户权限 —— 他们**绝对不会**被提升为管理员,也得不到任何管理员权限
- Beta tester 的体验与普通用户完全一样,只是时间更早:他们的解答会被记录下来,以便解锁受前置条件限制的题目,并能正常推进进度
- 他们的解答在 beta 测试期间也会计入统计,因此**在公开 CTF 开始之前,请清除 beta 测试数据**(参见用法)
- 用于管理 beta tester 的简单管理员界面
- 与现有的 CTFd 权限系统兼容
## 安装
1. 在你的 CTFd 安装目录中创建插件目录结构:
mkdir -p /path/to/CTFd/plugins/betatester/templates
2. 将插件文件复制到相应位置:
- `__init__.py` → `/path/to/CTFd/plugins/betatester/`
- `config.json` → `/path/to/CTFd/plugins/betatester/`
- `betatesters.html` → `/path/to/CTFd/plugins/betatester/templates/`
3. 重启你的 CTFd 实例以加载插件。
## 用法
### 添加 Beta Tester
1. 在 CTFd 管理面板中,进入 Admin → Beta Testers
2. 从下拉列表中选择一个用户
3. 点击 "Add to Beta Testers"
### 移除 Beta Tester
1. 在 CTFd 管理面板中,进入 Admin → Beta Testers
2. 在 Beta Testers 列表中找到该用户
3. 点击其名字旁边的 "Remove"
### Beta Tester 体验
- Beta tester 可以在 CTF 正式开始前访问并解答题目
- 他们的体验与普通用户完全一样(解答被记录、前置条件解锁、文件可下载)—— 他们只是更早进入而已
- Beta tester 无法访问任何管理员路由或功能
- 在其他参与者眼中,Beta tester 显示为普通用户
### 正式上线前:清除 beta 测试数据
Beta tester 的早期解答属于真实的解答,一旦 CTF 开放就会被计入统计。
在公开开始之前,请移除他们的进度(以及可选的账户):
- 在 *Admin → Users* 中重置/删除 beta tester 的解答(针对每个账户),或者
- 删除并重新创建 beta tester 账户,或者
- 通过数据库清除这些用户相关的 `solves`/`awards`/`unlocks` 行。
将某人从 Beta Testers 列表中移除只会撤销其提前访问权限 —— 它并
**不会**删除他们已经记录的任何解答。
## 要求
- CTFd v3.0.0 或更高版本
## 许可证
本项目基于 GPLv3 许可证授权。
## 贡献
欢迎贡献代码!请随时提交 Pull Request。
1. Fork 本项目
2. 创建你的功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到该分支 (`git push origin feature/amazing-feature`)
5. 发起一个 Pull Request
标签:CTFd, Python, Streamlit, 多模态安全, 插件, 无后门, 访问控制, 赛事管理, 逆向工具