Preskočiť na obsah
Táto stránka je dostupná aj v: Čeština, English, Українська

Bezpečnosť - technický detail

Aktualizované: 20. septembra 2026

Technický doplnok stránky Ako chránime vaše údaje. Opisuje vybrané mechanizmy aplikácie; nejde o certifikáciu infraštruktúry ani záruku rovnakého režimu pre všetky kategórie údajov.

I. Identitné údaje - Bank iD a ručné overenie

Identitu overujeme cez Bank iD alebo ručným overením oprávneným pracovníkom na online hovore. Výsledky overenia a potrebné identitné údaje ukladáme; vybrané citlivé polia sú šifrované na úrovni aplikácie.

Bank iD. Aplikácia spracúva overené údaje z autorizačného procesu a uchováva snímku identity na pracovnoprávne a mzdové účely. Prihlasovacie údaje do banky nezískava.

Ručné overenie. Oprávnený pracovník zapíše údaje z dokladu na online hovore; snímka dokladu sa do produkčného úložiska nenahráva. Výsledok nesie zdroj MANUAL_ADMIN a rovnakú auditnú stopu ako Bank iD.

Audit a uchovávanie. Identitné a podpisové udalosti majú auditné záznamy. Prevádzkové kópie, podklady na overenie a zákonné pracovnoprávne záznamy majú odlišné účely uchovávania; nemožno na ne vzťahovať jednu všeobecnú lehotu 60 dní. Vymazanie účtu neodstraňuje všetky zákonne uchovávané záznamy.

II. Tokeny a relácie

Pri prihlásení klient dostane dva tokeny: krátkodobý JWT access token a opakovane použiteľný refresh token (14 dní klzavo, 365 dní absolútne).

Refresh token je opaque. 64 znakov hexadecimálneho náhodného reťazca - nie JWT. Nemožno ho "rozšifrovať" mimo nášho backendu. Pri každom použití je rotovaný: starý token sa okamžite označí ako spotrebovaný, vystaví sa nový.

Rotácia a opakovanie požiadavky. RefreshTokenService používa family_id pre reťazec jednej relácie. Obnova označí starý token ako spotrebovaný. Obmedzené zotavovacie okno 300 sekúnd povoľuje opakovanie pri nepoužitom nástupcovi; vyrovnávacia pamäť dočasne obsahuje nový token. Opakovanie mimo povolených podmienok zneplatní dotknutú rodinu, nie všetky nezávislé relácie používateľa.

Aktívne zariadenia. Na /account/security/sessions (web) a /sessions (mobile) používateľ vidí všetky aktívne relácie, ich poslednú aktivitu a zariadenie / lokalitu (z User-Agent a IP adresy uloženej pri každom vydanom tokene relácie; IP adresy z predchádzajúcich obnovení zostávajú v auditnom rade tokenov až do zmazania účtu a IP adresy podpisových a overovacích úkonov v auditných záznamoch). Relácie možno revokovať individuálne alebo hromadne; revokácia zneplatní rodinu, nie iba jeden token.

III. Súbory a dokumenty

Produkčné úložisko má dve časti: verejné obrázky a prílohy chatu a podpory ukladáme v Amazon S3 (eu-central-1, Frankfurt) a verejné obrázky doručujeme cez Amazon CloudFront; zmluvy, podpísané dokumenty (DPP, vyhlásenia), doklady BOZP, certifikácie a životopisy ukladáme v Hetzner Object Storage (Falkenstein, Nemecko). Vývojové prostredia môžu používať MinIO. Verejné obrázky a neverejné dokumenty majú odlišné požiadavky na prístup.

Odkazy k súborom. Pri spravovaných objektoch aplikácia pracuje s kľúčom objektu a vystavuje URL podľa účelu a oprávnení. Podpísaný odkaz má obmedzenú platnosť; jeho držiteľ môže počas platnosti súbor stiahnuť. Podpísané odkazy na neverejné dokumenty platia spravidla 60 sekúnd, prílohy chatu a podpory až 72 hodín. Nejde o zákaz kopírovania.

Trojstupňová prístupová kontrola (apps/api/src/modules/storage/storage.controller.ts):

  1. Verejné súbory (logá firiem, profilové fotky, fotky ponúk) - dostupné bez autorizácie na trvalej adrese cez CDN s dlhodobým ukladaním do medzipamäte; nepodpisujú sa a sú určené na zverejnenie.
  2. Authenticated assets (zmluvy, doklady k zákazkám) - JWT validácia + overenie vlastníctva predtým, než vystavíme signed URL.
  3. Tenant-scoped assets (interné firemné dokumenty) - kontrolujeme aj X-Active-Company-Id header, takže admin firmy A nemá prístup k súborom firmy B.

IV. Šifrovanie pri prenose a vybraných údajov pri uložení

Pri prenose. Verejné rozhrania používajú HTTPS/TLS. Konkrétne TLS a proxy nastavenia patria do konfigurácie daného nasadenia.

Pri uložení. Aplikácia používa AES-256-GCM pre vybrané citlivé identitné a mzdové údaje. Nie je to záruka šifrovania celého databázového disku, všetkých súborov alebo každej zálohy.

Cross-tenant scope safety. Verejné dotazy na tabuľku companies prechádzajú cez excludePlatformCompany() (apps/api/src/common/scopes/exclude-platform-company.scope.ts) - interný FIXIT_PLATFORM shell employer tak nemôže preniknúť do verejných listingov, vyhľadávania ani Elasticsearch indexácie.

Vstupy používateľa. Ochrana zahŕňa validáciu, kontrolu oprávnení, bezpečné vykreslenie a kontroly URL pred serverovým sťahovaním. Jednotlivé typy obsahu majú rôzne spracovanie; nie každý vstup prechádza totožnou sanitizáciou.

V. GDPR a kontakty

FixIt.app s.r.o. je správcom osobných údajov podľa článku 4 GDPR. Naše Zásady ochrany osobných údajov popisujú právny rámec a vaše práva.

Hlásenie bezpečnostných problémov: security@fixit.app. Uveďte kroky na reprodukciu a dopad; zverejnenie prosíme koordinovať s nami.


Otázky k týmto mechanizmom: security@fixit.app.