跳到正文

正在自动登录…

← 返回项目列表

SkyZeroZx/corner-shop

安全漏洞演示

这是一个用于演示Angular HTTP信任边界安全漏洞的示例应用,包含Angular SSR、NestJS API和攻击者服务器,通过unsafe和safe两种模式展示并验证安全问题,适用于安全研究者和Angular开发者学习。

AI 中文解读 · 根据仓库描述与 README 生成 · 2026/10/24 23:56:05 · 查看原文

TypeScript应用与服务
累计 Stars
63
当前热度
1 天内 · 小火
仓库创建时间
打开 GitHub ↗

选用指南

AI 根据 README 整理 · 2026/10/24 23:56:05

使用方式

通过命令行运行 npm install、npm build、npm start 或 npm run start:safe 启动应用,使用 npm run lab:* 或 npm run verify 执行安全实验。

查看 README 依据
- `safe`: las mismas pantallas y features, pero con otras decisiones en cada frontera. Todo corre en tu máquina, en loopback, y los secretos son datos de prueba. ## Requisitos - Node.js 22.12 o superior (lo probé con 24.16) - Chrome o Edge, solo para `npm run verify` ## Cómo correrlo ```bash npm install npm run build npm start # modo unsafe npm run start:safe # modo safe ``` | Servidor | URL | | ------------------ | ----------------------------- | | shop (Angular SSR) | http://localhost:4000 |
| api (NestJS) | http://localhost:3000/api | | attacker (NestJS) | http://localhost:9999/\_\_log | `npm run verify` corre los labs 1 a 5 en los dos modos y te muestra qué se filtró: ```bash npm run verify ``` ```text Lab unsafe safe -------------------------------------------------------------- 1 Token on a URL that "looks relative" LEAKED blocked 2 Host header steers SSR requests LEAKED blocked 3 Custom header follows a redirect LEAKED blocked 4 Private data in shared HTML LEAKED blocked
Los `npm run lab:*` imprimen lo mismo que `curl` sin que tengas que escribirlo. Todos menos `lab:urls` necesitan el stack corriendo (`npm start` o `npm run start:safe`). ### Lab 1 · Fuga del token Bearer por dos parsers Una promo del CMS trae `trackUrl: '/\localhost:9999/collect'`. El interceptor de auth revisa con un regex si la URL es "nuestra", ve que sí y le pone el token. Pero el navegador la lee con el parser WHATWG y la manda a otro origen. Puedes verlo sin navegador: ```bash npm run lab:urls ``` ```text
部署要求

需要 Node.js 22.12 或更高版本,Chrome 或 Edge 仅用于运行 npm run verify。

查看 README 依据
- `safe`: las mismas pantallas y features, pero con otras decisiones en cada frontera. Todo corre en tu máquina, en loopback, y los secretos son datos de prueba. ## Requisitos - Node.js 22.12 o superior (lo probé con 24.16) - Chrome o Edge, solo para `npm run verify` ## Cómo correrlo ```bash npm install npm run build npm start # modo unsafe npm run start:safe # modo safe ``` | Servidor | URL | | ------------------ | ----------------------------- | | shop (Angular SSR) | http://localhost:4000 |
已知限制

这是一个演示项目,作者明确说明SAFE=1模式仅用于演示,不应复制到实际应用中。

查看 README 依据
El servidor lee el modo de `SAFE=1` y se lo pasa al navegador por `TransferState` ([lab-mode.ts](apps/shop/src/app/lab/lab-mode.ts)). Eso es solo para la demo, no lo copies en tu app. Hay cosas que no cambian entre modos porque no son parte de ningún lab. La API valida el usuario en el login, chequea XSRF con double submit ([guards.ts](apps/api/src/app/guards.ts)), acepta `X-Session` solo si viene con la API key interna ([sessions.service.ts](apps/api/src/app/sessions.service.ts)) y cierra la sesión en el servidor cuando haces sign-out. ## Estructura ```text apps/

README

正在加载 README…

收录信息

仓库创建时间
2026/10/24 02:56:47
首次达标收录
2026/10/24 23:51:00
统计更新时间
2026/10/25 01:20:57

按创建时长与累计 Stars 判断等级。首次达标收录后,即使未达当前门槛仍保留;累计 Stars 和仓库状态会定期更新。确认只有 README 及辅助文件的仓库会停止公开。

仓库信息

最近推送
2026/10/24 07:00:50
许可证标识
MIT
Fork 数
0
当前状态
未归档

收录记录

按创建时长与累计 Stars 首次收录:小火
首次发现项目