mahmoudabdullah07/CodeAlpha_PhishingAwarenessTraining
GitHub: mahmoudabdullah07/CodeAlpha_PhishingAwarenessTraining
一个纯防御性的交互式钓鱼攻击防范意识培训模块,通过教育内容、场景练习和测验帮助学习者识别并应对社会工程学攻击。
Stars: 0 | Forks: 0
# Signal Check — 钓鱼攻击防范意识培训
Signal Check 是一个完整的交互式钓鱼攻击防范意识培训模块,由 **Mahmoud Abdullah** 为 **CodeAlpha Cyber Security Internship** 创建。它通过原创的教育内容、虚构的场景、“找出钓鱼邮件”练习以及包含 14 个问题的测验,教导人们学会停顿、检查、验证并报告可疑信息。
该项目在设计上纯属防御性质。它不会复现真实组织、创建可用的登录页面、收集凭证或提供欺骗性链接。
## 学习目标
完成该模块后,学习者应能够:
- 解释什么是钓鱼攻击以及为什么它属于社会工程学攻击。
- 区分邮件钓鱼、鱼叉式钓鱼、短信钓鱼、电话钓鱼、商业邮件入侵 (BEC) 以及虚假登录网站。
- 识别利用紧迫感、恐惧、权威、好奇心、奖励和冒充身份的战术。
- 检查发件人地址、域名、同形异义字符、URL、二维码、短链接、语言质量、附件、紧急请求和登录页面。
- 解释为什么 HTTPS 能保护连接,但无法证明网站是合法的。
- 养成更安全的习惯:避免点击可疑链接、通过其他渠道验证、使用 MFA 和密码管理器、报告可疑信息以及保持设备更新。
## 功能特性
- 在一个兼容 GitHub Pages 的页面中包含 13 个清晰可导航的培训章节。
- 原创且真实的示例,仅使用虚构的组织和保留的 `.example` 域名。
- 针对发件人、压力和域名线索的交互式首屏“证据追踪”。
- 包含即时解析和进度显示的四卡片“找出钓鱼邮件”练习。
- 包含六项内容的防范实践清单。
- 数据驱动的 14 题测验,具备:
- 答题进度和问题位置显示;
- 上一题/下一题导航;
- 分数和百分比;
- 每道题的正确答案与解析;
- 重试/重置控制;
- 经过保护的、带有版本控制的进度和完成状态仅存储在 `localStorage` 中;
- 页面重新加载后可恢复已完成的测试结果。
- 可打印的完成摘要,明确声明其**并非官方认证**。
- 针对已完成测验验证的单页 A4 PDF 输出。
- 适用于桌面端、平板端和移动端的响应式布局。
- 语义化结构标记、支持键盘操作的原生控件、可见的焦点状态、实时状态更新、高对比度、减少动态效果支持以及打印样式。
- 基于 Node 内置的测试和测验引擎覆盖率检查,无需 npm 运行时或测试依赖。
## 目录结构
```
.
├── index.html
├── css/
│ ├── styles.css
│ ├── base.css
│ ├── content.css
│ ├── quiz-footer.css
│ └── responsive.css
├── js/
│ ├── app.js
│ ├── quiz-data.js
│ └── quiz.js
├── assets/
│ └── README.md
├── docs/
│ ├── PROJECT_REPORT.md
│ └── VIDEO_SCRIPT.md
├── tests/
│ ├── browser-smoke.mjs
│ ├── content.test.js
│ ├── manual-test-checklist.md
│ └── quiz.test.js
├── .gitignore
├── LICENSE
├── package.json
└── README.md
```
## 本地运行
该站点使用浏览器原生的 JavaScript 模块,因此请通过 HTTP 提供该目录的服务,而不是直接打开 `index.html`。
```
python3 -m http.server 8000
```
然后在浏览器中打开 `http://localhost:8000/`。无需安装或构建步骤。
要运行质量检查:
```
npm test
npm run test:coverage
npm run check:syntax
npm run test:browser
```
浏览器冒烟测试使用本地安装的 Chromium 或 Chrome 可执行文件,以及 Poppler 的 `pdfinfo` 和 `pdftotext` 命令来进行真实的 PDF 验证。单元/内容测试仅使用 Node.js 的内置功能,并且覆盖率检查命令仅针对测验数据和测验状态引擎,而不涵盖完整的 DOM 应用程序。
主样式表保留了四个专注于特定功能的小型 `@import` 文件。这维持了当前无构建流程的工作方式;CSS 负载足够小,打包是可选的,而不是部署的必需条件。
## 部署到 GitHub Pages
1. 创建一个 GitHub 仓库,并将这些文件添加到仓库根目录。
2. 提交并将项目推送到您希望发布的分支,通常是 `main`。
3. 在仓库中,打开 **Settings → Pages**。
4. 在 **Build and deployment** 下,选择 **Deploy from a branch**。
5. 选择分支和 `/ (root)` 文件夹,然后保存。
6. GitHub 完成部署后,打开 Pages URL 并重复进行链接、响应式、测验和打印检查。
本项目不包含自动化的推送或部署操作。培训模块不会执行任何提交或远程更改。
## 安全与道德
- 所有示例名称、服务、地址、电话号码和信息均为虚构。
- `.example` 域名仅作为纯培训文本展示,绝不会用作凭证提交目标。
- 该页面不包含密码输入框、数据提交端点、分析工具、cookie、第三方脚本或远程持久化存储。
- 测验状态仅限于一个带有版本控制的 `localStorage` 键,并且可以通过 **Retry quiz** 重置为空状态。
- 外部链接仅指向权威的防御性资源,并以 `noopener noreferrer` 方式打开。
- 本项目仅用于教育、意识培养和防御性安全目的。
## 截图
请在部署后添加最终截图,且不替换原有的无障碍文本内容:
| 视图 | 占位路径 |
| --- | --- |
| 桌面端首屏与证据追踪 | `assets/screenshots/desktop-hero.png` |
| 移动端“找出钓鱼邮件”练习 | `assets/screenshots/mobile-spot-the-phish.png` |
| 测验结果与答案回顾 | `assets/screenshots/quiz-results.png` |
源项目中故意没有伪造截图文件。有关截图指导,请参阅 [`assets/README.md`](assets/README.md)。
自动化浏览器检查目前仅使用 Chromium。Firefox、Safari、Edge、移动端浏览器引擎、正式的屏幕阅读器行为以及物理打印机输出仍属于手动验证项目。
## CodeAlpha 提交信息
- **学生:** Mahmoud Abdullah
- **实习项目:** CodeAlpha Cyber Security Internship
- **项目:** Phishing Awareness Training
- **建议的提交包:** GitHub 仓库 URL、已部署的 GitHub Pages URL、项目演示视频和项目报告。
- **演示旁白:** [`docs/VIDEO_SCRIPT.md`](docs/VIDEO_SCRIPT.md)
- **项目报告:** [`docs/PROJECT_REPORT.md`](docs/PROJECT_REPORT.md)
- **测试记录:** [`tests/manual-test-checklist.md`](tests/manual-test-checklist.md)
## 许可证
本项目基于 [MIT License](LICENSE) 提供。教育内容仍受项目防御性和道德使用声明的约束。
## 作者
**Mahmoud Abdullah**
CodeAlpha Cyber Security Intern
mahmoudabdulsm@gmail.com
CodeAlpha Cyber Security Intern
mahmoudabdulsm@gmail.com
标签:ESC8, MITM代理, 多模态安全, 社会工程学, 网络安全, 自定义脚本, 隐私保护