Ovaj projekat je u aktivnom razvoju. Podržava se samo main grana.
Ne otvaraj javni Issue za sigurnosne probleme. Umesto toga:
- Idi na Security → Advisories → Report a vulnerability u GitHub repozitorijumu, ili
- Pošalji email na: vlasniku repozitorijuma (GitHub profil)
Očekuj potvrdu u roku od 72 sata i detaljniji odgovor u roku od 7 dana.
Projekat primenjuje sledeće mere:
- Secrets van koda —
VITE_SUPABASE_*se učitavaju iz.env.local; nikad nisu commit-ovani.src/lib/env.tszod-validira da svaka potrebna vrednost postoji pre nego što aplikacija krene. - Supabase Auth umesto hardkodovane lozinke za admin panel. Sesija živi u Supabase klijentu (local storage) i refresh-uje se automatski.
- HTTP security headers na Vercelu (
vercel.json):- Strict-Transport-Security (
max-age=63072000; includeSubDomains; preload) - Content-Security-Policy (samo Supabase i fonts.googleapis.com)
- X-Frame-Options: DENY (frame-ancestors 'none' u CSP)
- X-Content-Type-Options: nosniff
- Referrer-Policy: strict-origin-when-cross-origin
- Permissions-Policy (kamera/mikrofon/geo isključeni)
- Strict-Transport-Security (
- Input validacija na server strani — edge funkcije
submit-inquiryicalculate-priceodbacuju nevalidne dimenzije, nevalidan email, prevelike stringove, i dozvoljavaju samo POST metodu. - CORS origin allowlist — edge funkcije čitaju
ALLOWED_ORIGINSsecret; wildcard (*) je rezervisan samo za razvoj. - File upload validation —
src/lib/storage.tsograničava upload na 2 MB i JPEG/PNG/WebP/GIF MIME tipove; imena fajlova se sanitizuju. - CI security scans — CodeQL workflow weekly + na svakom PR-u.
- Dependency updates — Dependabot sa grupisanim PR-ovima jednom nedeljno.
- Strict TypeScript i ESLint sprečavaju široku kategoriju ranjivosti tipa-injekcije u kodu.
- U Supabase Dashboard → Settings → API, regeneriši
anonkey - Ažuriraj
.env.locallokalno i environment variables u Vercelu - Ako je ključ bio u git istorijatu, razmotri purge preko
git filter-repoili obeleži ga kao opozvan uCHANGELOG.md