2.7 KiB
2.7 KiB
审计 — 3389 独立 RDP 主机(rdp_hosts)
Changelog: docs/changelog/2026-06-10-rdp-hosts-standalone.md
变更文件
| 文件 | 说明 |
|---|---|
server/domain/models/__init__.py |
RdpHost 模型 |
server/infrastructure/database/migrations.py |
rdp_hosts 表 |
server/infrastructure/database/rdp_host_repo.py |
仓储 |
server/api/rdp_hosts.py |
CRUD + connect REST |
server/api/rdp.py |
WS /ws/rdp/hosts/{host_id} |
server/main.py |
注册 rdp_hosts_router |
frontend/src/pages/RdpPage.vue |
列表/添加/连接 |
frontend/src/components/rdp/RdpHostFormDialog.vue |
添加/编辑对话框 |
frontend/src/composables/rdp/useRdpHostList.ts |
列表与 CUD |
frontend/src/composables/rdp/useRdpServerList.ts |
删除(改由 useRdpHostList) |
frontend/src/composables/rdp/useRdpSession.ts |
改连 rdp_hosts |
web/app/index.html |
Vite 构建入口 hash 更新 |
frontend/src/components/servers/ServerFormDialog.vue |
移除 RDP 区块 |
frontend/src/composables/servers/useServerFormDialog.ts |
移除 rdp 字段 |
frontend/src/pages/ServersPage.vue |
移除 RDP 跳转 |
tests/test_rdp_hosts.py |
模型/端口单测 |
入口表
| 方法 | 路径 | 鉴权 | 说明 |
|---|---|---|---|
| GET | /api/rdp/hosts/ |
admin JWT | 列表(无密码) |
| POST | /api/rdp/hosts/ |
admin JWT + 审计 | 创建,密码 Fernet |
| PUT | /api/rdp/hosts/{id} |
admin JWT + 审计 | 更新 |
| DELETE | /api/rdp/hosts/{id} |
admin JWT + 审计 | 删除 |
| GET | /api/rdp/hosts/{id}/connect |
admin JWT | 返回明文密码供 Guacamole |
| WS | /ws/rdp/hosts/{id}?token= |
access JWT | guacd 透明桥 |
Step 3(规则扫描)
| 规则 | 结论 | 说明 |
|---|---|---|
| 鉴权 | PASS | 全部 REST/WS 需管理员 JWT |
| IDOR | PASS(平台模型) | 与终端一致:管理员可连任意 RDP 主机 |
| 密钥落库 | PASS | password 列 Fernet;列表仅 password_set |
| 明文 connect | RISK 接受 | Guacamole 客户端必需;HTTPS |
| CUD 审计 | PASS | create/update/delete_rdp_host |
| guacd | PASS | 仍仅内网侧车 |
| 静默吞错 | PASS | API HTTPException;WS close code |
Closure(走读)
| 文件 | 结论 |
|---|---|
rdp_hosts.py |
SAFE — 名称唯一 IntegrityError→409;connect 校验 guacd |
rdp_host_repo.py |
SAFE — 标准 CRUD |
rdp.py |
SAFE — host 存在性校验后桥接 |
RdpPage.vue |
SAFE — 无 v-html;添加后 host_id 连接 |
useRdpHostList.ts |
SAFE — formatApiError |
DoD
- changelog + 本审计
local_verify+ type-check- 生产部署与浏览器验收