云边隔离动态染色与可信溯源平台。
本项目是“面向云边数据隔离与安全交互系统”的中期答辩演示原型,围绕云边协同办公中的屏显泄密问题,演示从云端资产访问、边缘策略下发、终端动态水印嵌入,到攻击模拟、安全溯源和可信证据链展示的闭环流程。
- 安全态势总览:展示云端、边缘端、终端层、安全管控层的演示闭环。
- 数据资产与云边请求:模拟终端通过边缘网关请求云端资产并获得一次性策略。
- 动态水印工作台:支持图片和 PDF 的隐形水印嵌入。
- 攻击实验室:支持 JPEG 压缩、缩放扰动、轻裁剪等攻击模拟。
- 安全管控溯源:上传泄露图片或 PDF,提取水印并定位责任用户。
- 可信证据链:展示登录、策略下发、水印嵌入、攻击模拟、溯源等事件的链式审计记录。
- 前端:React + Vite
- 后端:FastAPI
- 图片处理:OpenCV、invisible-watermark
- PDF 处理:pypdfium2
- 本地存储:JSON 文件
Windows 下进入项目根目录后,双击:
start_all.bat
启动成功后访问:
http://127.0.0.1:5173
后端健康检查地址:
http://127.0.0.1:8010/
正常返回:
{"message":"ok","version":"1.2.0"}后端:
python -m uvicorn backend.app.main:app --host 127.0.0.1 --port 8010前端:
Set-Location frontend
npm install
npm run dev -- --host 127.0.0.1 --port 5173系统内置了默认演示账号,同学 clone 后无需提交 backend/storage/users.json 也可以登录:
alice / 123456
水印大师 / GCCL
首次运行后,后端会在本地自动生成 backend/storage/ 运行数据目录。该目录已被 .gitignore 忽略,不应提交到 GitHub。
.
├─ backend/ 后端 FastAPI 服务
│ ├─ app/
│ │ ├─ routers/ API 路由
│ │ └─ services/ 水印、用户、统计、指纹匹配等服务
│ ├─ requirements.txt 后端核心依赖
│ └─ requirements-pdf.txt PDF 可选依赖说明
├─ frontend/ 前端 React 应用
│ ├─ src/
│ │ ├─ App.jsx ViewShield 主界面
│ │ ├─ styles.css 控制台样式
│ │ └─ api/client.js API 请求封装
│ └─ package.json
├─ start_all.bat 一键启动前后端
├─ start_backend.bat 启动后端
├─ start_frontend.bat 启动前端
└─ 中期答辩演示系统升级方案.md
- 打开欢迎页,点击“开始演示”。
- 使用演示账号登录控制台。
- 进入“数据资产与云边请求”,选择一个资产并请求访问。
- 系统自动生成会话策略,并跳转到“动态水印工作台”。
- 上传图片或 PDF,执行水印嵌入。
- 进入“攻击实验室”,生成压缩、缩放或裁剪攻击样本。
- 进入“安全管控溯源”,对泄露样本进行溯源。
- 进入“可信证据链”,查看本次演示产生的链式审计事件。
以下内容不应提交:
frontend/node_modules/
frontend/dist/
.venv/
.venv312/
backend/storage/
backend/.env
frontend/.env
*.log
原因:
frontend/node_modules/和虚拟环境体积过大,可由依赖文件重新安装。backend/storage/是本地运行数据,可能包含上传文件、用户数据和溯源记录。.env和日志文件属于本机配置或运行产物。
通常是前端没有连上后端。先确认后端是否启动:
http://127.0.0.1:8010/
如果打不开,重新运行 start_all.bat。
优先保证图片水印链路可用。PDF 功能依赖更重,如现场演示不稳定,可以将图片链路作为主流程,PDF 作为补充展示。
前端开发服务开启时通常会自动热更新。如果没有变化,刷新浏览器:
Ctrl + F5
或重启 start_frontend.bat。