IAZARA/Juego_Ciberseguridad

GitHub: IAZARA/Juego_Ciberseguridad

一款移动端优先的网络安全教育游戏,通过七个互动关卡帮助用户在模拟场景中学习钓鱼识别、密码安全和数字卫生习惯。

Stars: 0 | Forks: 0

CyberShield - juego interactivo de ciberseguridad e higiene digital

CyberShield

一个互动且游戏化的工作坊,旨在通过真实场景学习网络安全和数字素养。

预览 · 使用方法 · 关卡 · Stack · 本地运行 · Docker · 部署

Estado Mobile first Vanilla JS Node.js Licencia MIT

## 预览 | 首页 | 钓鱼检测 | 强密码 | |:--:|:--:|:--:| | CyberShield 初始界面 | 钓鱼检测关卡 | 强密码关卡 | ## 关于本项目 CyberShield 是一款 mobile-first 的教育体验应用,旨在培训在互联网中生存的关键技能: 该游戏将安全概念转化为具体的决策:检测钓鱼、识别可疑链接、避免二维码陷阱、应对设备被盗以及创建强密码。 ## 标签 `cybersecurity` `digital-hygiene` `phishing` `education` `game` `mobile-first` `javascript` `express` `railway` ## 如何使用 CyberShield 在浏览器中进行游戏,非常适合在移动端屏幕或响应式视图中使用。用户可以选择语言,通过 7 个关卡并解决模拟的安全决策。每个屏幕都会提供即时反馈以强化判断标准:阅读现状、思考风险并谨慎行事。 用于工作坊或课堂时: 1. 投影或分享游戏的 URL。 2. 要求每位参与者在自己的手机上完成关卡。 3. 将错误和正确的决定作为话题的切入点。 4. 以最终的数字素养清单作为结束。 用于个人使用时: 1. 打开 app。 2. 选择语言。 3. 按顺序完成挑战。 4. 重复您失败的关卡以巩固学习。 ## 关卡 | # | 模块 | 主要学习内容 | |---|--------|------------------------| | 1 | 权限陷阱 | 在接受侵入性条件前进行阅读。 | | 2 | 钓鱼侦探 | 识别发件人、虚假紧急情况和危险链接。 | | 3 | 互动场景 | 解决 juice jacking、公共 WiFi、QRishing 和 vishing 的相关情况。 | | 4 | 紧急协议 | 手机被盗时关键操作的排序。 | | 5 | 强密码 | 利用实时反馈构建强密码。 | | 6 | Digital Shield | 验证诸如 2FA、补丁和零信任等保护习惯。 | | 7 | 证书 | 以一项可分享的成就结束工作坊。 | ## Stack | 领域 | 技术 | |------|------------| | 前端 | HTML5, CSS3, 原生 JavaScript | | UI | 自定义 CSS, Google Material Symbols, 通过 CDN 引入的 Tailwind 工具类 | | 后端 | Node.js + Express | | 架构 | 由 `public/` 提供服务的 Single Page Application | | 容器 | Docker + Docker Compose | | 部署 | Railway, Render 或任何 Node.js/Docker 主机 | ## 结构 ``` . |-- public/ | |-- index.html | |-- styles.css | |-- game.js | `-- translation.js |-- docs/ | `-- assets/ | |-- cybershield-banner.png | |-- preview-splash.png | |-- preview-phishing.png | `-- preview-password.png |-- server.js |-- Dockerfile |-- docker-compose.yml |-- SECURITY.md |-- package.json `-- README.md ``` ## 本地运行 ``` git clone https://github.com/IAZARA/Juego_Ciberseguridad.git cd Juego_Ciberseguridad npm install npm start ``` 然后打开: ``` http://localhost:3000 ``` 如果端口 `3000` 被占用,您可以使用其他端口: ``` PORT=3001 npm start ``` 在 PowerShell 中: ``` $env:PORT=3001 npm start ``` 分享项目前用于检查的实用命令: ``` npm run check npm run audit ``` ## Docker 无需在本地配置 Node.js 即可运行 CyberShield 的最简单方法是使用 Docker。 ### 选项 1:Docker Compose ``` docker compose up --build ``` 然后打开: ``` http://localhost:3000 ``` 停止运行: ``` docker compose down ``` ### 选项 2:Docker CLI ``` docker build -t cybershield-game . docker run --rm -p 3000:3000 cybershield-game ``` 您也可以使用包含的脚本: ``` npm run docker:build npm run docker:run ``` 该容器在生产模式下运行,暴露 `3000` 端口,使用非 root 用户,在最终的 runtime 中移除了包管理器,并具有 HTTP healthcheck。 ## 安全性 Express 服务器为静态 app 应用了防御性 headers: - `Content-Security-Policy` 仅限于自身资源、Google Fonts 和游戏使用的教育图像。 - `X-Frame-Options: DENY` 和 `frame-ancestors 'none'` 以防止 clickjacking。 - `X-Content-Type-Options: nosniff`。 - `Permissions-Policy` 屏蔽了摄像头、麦克风、地理位置和支付。 - 当 app 在 HTTPS 后面运行时的 `Strict-Transport-Security`。 - 禁用了 `x-powered-by`。 ## 部署 该仓库已准备好部署到 Railway、Render 或任何兼容 Node.js 或 Docker 的平台。 1. 创建一个新项目。 2. 从 GitHub 选择此仓库。 3. 使用 `npm start` 作为启动命令。 4. 从提供商的面板生成公共域名。 如果您的提供商支持 Docker,您也可以直接从 `Dockerfile` 进行部署。 ## 作者 由 **Iván Agustín Zárate** 创建。 ## 许可证 在 MIT 许可证下分发。查看 [LICENSE](LICENSE) 了解更多信息。
标签:GNU通用公共许可证, MITM代理, Node.js, Vanilla JS, 安全教育, 游戏化学习, 版权保护, 移动优先, 网络安全意识培训, 自定义脚本, 请求拦截