一个交互式教育可视化工具,用于解释 React2Shell 漏洞——一个影响 React 服务器组件的 CVSS 10.0 严重远程代码执行缺陷。
一个包含 5 个步骤的带旁白讲解,解释以下内容:
hasOwnProperty 检查如何阻止攻击每个步骤包含:
该可视化完全响应式,提供移动端优化体验:
该可视化支持三种受众级别,每种级别配有定制旁白:
| 级别 | 受众 | 风格 |
|---|---|---|
| 专家 | 安全工程师、高级开发者 | 精确术语,深入机制 |
| 实践者 | 开发者、IT 专业人士 | 概念结合实例 |
| 利益相关者 | 管理层、产品经理 | 业务影响,关键要点 |
用户可通过视频控件中的“目标受众”下拉菜单实时切换级别。
├── scripts/ # 旁白脚本文本(事实来源)
│ ├── expert/
│ │ ├── ssr-narration.txt
│ │ ├── rsc-narration.txt
│ │ ├── exploit-narration.txt
│ │ ├── fix-narration.txt
│ │ └── lessons-narration.txt
│ ├── practitioner/
│ │ └── ... (相同文件)
│ ├── stakeholder/
│ │ └── ... (相同文件)
│ └── transcribe.py # Whisper 转录脚本
├── static/audio/ # 生成的 MP3 文件
│ ├── expert/
│ │ ├── ssr.mp3
│ │ ├── rsc.mp3
│ │ ├── exploit.mp3
│ │ ├── fix.mp3
│ │ └── lessons.mp3
│ ├── practitioner/
│ │ └── ... (相同文件)
│ └── stakeholder/
│ └── ... (相同文件)
├── src/lib/data/ # Whisper JSON 输出(单词级时间戳)
│ ├── expert/
│ │ ├── ssr-whisper.json
│ │ └── ...
│ ├── practitioner/
│ │ └── ...
│ └── stakeholder/
│ └── ...
└── src/lib/utils/triggers/ # 每级别动画触发短语
├── expert/
├── practitioner/
└── stakeholder/
npm install
npm run dev
脚本位于 scripts/{level}/ 目录下:
ssr-narration.txtrsc-narration.txtexploit-narration.txtfix-narration.txtlessons-narration.txt每个脚本底部包含用于动画同步的触发短语注释。
将脚本上传至 ElevenLabs 并下载 MP3 文件。
将 MP3 文件放入 static/audio/{level}/ 目录,文件名与步骤名称一致(例如 static/audio/expert/ssr.mp3)。
单个文件:
python scripts/transcribe.py ssr expert
python scripts/transcribe.py rsc practitioner
批量模式(处理一个级别的所有文件):
python scripts/transcribe.py --batch expert
python scripts/transcribe.py --batch practitioner
python scripts/transcribe.py --batch stakeholder
python scripts/transcribe.py --batch all # 全部 15 个文件
选项:
--model small - 使用更大的 Whisper 模型以获得更高准确度--dry-run - 预览将要转录的内容而不实际运行脚本会输出 JSON 到 src/lib/data/{level}/ 目录,包含单词级时间戳。
如果旁白措辞发生显著变化,请更新 src/lib/utils/triggers/{level}/ 目录中的触发短语以匹配新脚本。
src/lib/utils/triggers/) 在每个级别中查找关键短语src/lib/stores/timeline.svelte.ts) 同步音频与动画getAnimationState() 从 currentTime 推导视觉状态npm run build
npm run preview
仅用于教育目的。为安全意识提升而创建。