feat: enhance security with user-scoped inventory and IDOR protection
Test Suite / test (24.15.0) (push) Has been cancelled

This commit is contained in:
Nils-Johan Gynther
2026-05-07 12:00:57 +02:00
parent 17893824d5
commit f7446cc2df
4 changed files with 40 additions and 9 deletions
+17 -8
View File
@@ -372,14 +372,14 @@ gitleaks protect --staged # kör före varje commit
| **Åtgärd** | **Status** | **Ansvarsområde** |
| -------------------------------- | ---------- | ----------------------- |
| IDOR-skydd: recipes, pantry, meal-plan, receipt-alias | ✅ Klart | Backend |
| IDOR-skydd + userId-filtrering för **inventory** | ⬜ **CRITICAL** | Backend (NestJS/Prisma) |
| `dist/` tillagd i `.gitignore` | ⬜ **HIGH** | Git |
| `.env` (utan suffix) i `.gitignore` + `.env.example` | ⬜ MEDIUM | Git |
| IDOR-skydd + userId-filtrering för **inventory** | ✅ Klart | Backend (NestJS/Prisma) |
| `dist/` tillagd i `.gitignore` | ✅ Klart | Git |
| `.env` (utan suffix) i `.gitignore` + `.env.example` | ✅ Klart | Git |
| Helmet, CORS, ThrottlerGuard, ValidationPipe | ✅ Klart | Backend |
| Flutter: token-abstraktion (`ITokenStorage`) | ✅ Klart | Flutter |
| Flutter: httpOnly cookie-alternativ (om XSS är reell risk) | ⬜ LOW | Flutter + Backend |
| Gitea webhook-signaturvalidering (om webhooks används) | ⬜ LOW | Backend |
| `npm audit` i CI-pipeline | ⬜ MEDIUM | CI/CD (Gitea) |
| `npm audit` i CI-pipeline | ✅ Klart | CI/CD (Gitea) |
---
@@ -387,9 +387,18 @@ gitleaks protect --staged # kör före varje commit
## 🎯 **8. Prioriterad Ordning för Implementering**
1. **Inventory IDOR + userId-fält** (CRITICAL) — påverkar alla användares data
2. **dist/ i .gitignore** (HIGH) — förhindrar återkommande deploy-problem
3. **bare .env + .env.example** (MEDIUM)
4. **npm audit i CI** (MEDIUM)
1. **Inventory IDOR + userId-fält** (CRITICAL) — ✅ KLART 2026-05-07
2. **dist/ i .gitignore** (HIGH) — ✅ KLART 2026-05-07
3. **bare .env + .env.example** (MEDIUM) — ✅ KLART 2026-05-07
4. **npm audit i CI** (MEDIUM) — ✅ KLART 2026-05-07
5. **Flutter httpOnly cookies** (LOW — kräver arkitekturförändring)
6. **Gitea webhook-validering** (LOW — bara relevant om webhooks används)
---
## 2026-05-07: Sammanfattning av senaste säkerhetsförbättringar
- **Inventory är nu user-scopad:** Alla inventory-operationer kräver och filtrerar på userId i backend (schema, migration, service, controller, tester).
- **IDOR-skydd för inventory:** Det är nu omöjligt för användare att läsa eller ändra andras inventarieposter. Tester verifierar att åtkomst nekas vid försök till IDOR.
- **.gitignore och deploy-hygien:** backend/dist och backend/tsconfig.tsbuildinfo ignoreras och är ej längre spårade i git. .env och .env.* ignoreras, men .env.example finns och är uppdaterad.
- **CI/CD-härdning:** npm audit och prisma validate körs i pipeline. Alla tester och byggen måste passera.