- Lozinke samo u
.env(nikad u gitu —.gitignorega pokriva).mujowin upodbija prazne i defaultne (admin,password,123456,docker). - RDP (3389) ne izlaži javno bez potrebe. Na Codespacesu drži port Private osim kad aktivno pristupaš; jaka lozinka je obavezna, ne opciona. Isto vrijedi za noVNC port (8006): Public samo dok se spajaš, inače Private. Pravilo: nijedan port ne stoji javno duže nego što mora.
- noVNC (8006) nema svoju autentifikaciju u Fazi 1 (dockur
PROTECTvarijanta nije uključena — namjerno, da se ne lažira sigurnost). Zaštita = vidljivost porta + Codespaces auth. Ploča od Faze 2 ima token-autentifikaciju prema API-ju (vidi tačku 5). - Docker socket se nigdje ne mounta u kontejnere i ne izlaže mrežno.
- API token (
MUJO_API_TOKEN, 32+ hex znaka): server se bez njega odbija startati (non-mock). Poređenje je timing-safe. Samo/api/healthje bez auth-a. Token pripada u.env, nikad u git/logove; ploča ga drži usessionStorage(nestaje zatvaranjem taba), ne ulocalStorage. - API sluša na 127.0.0.1 po defaultu. Za udaljeni pristup koristi
SSH ili Codespaces port-forward, ne
MUJO_API_BIND=0.0.0.0bez TLS-a. - OEM skripte (
oem/) izvršavaju se kao SYSTEM tokom instalacije — reviewaj svaku liniju prije prvog starta, kao i svaki kod koji se izvršava s privilegijama.
- Jaka, jedinstvena lozinka (20+ znakova iz generatora).
- Poslije korištenja: port nazad na Private,
mujowin downkad VM ne treba. - Nikad istu lozinku kao za GitHub/Microsoft nalog.
- Throttling: 120 zahtjeva/min po IP-u na cijelom
/api(prije auth-a, pa i brute-force troši kvotu). Ploča troši ~36/min. - Audit trag: svaki API poziv (IP, metod, putanja, status, ms) ide
u stdout — čitaju ga
docker logs/ journald.
TLS završetak, rotacija tajni, skeniranje image-a je u CI-ju (Trivy, neblokirajuće jer je image uzvodni). Nemoj koristiti za osjetljive podatke dok TLS ne postoji.