Қауіпсіздік

Қауіпсіздік — ашық әрі қарапайым

MyFina — үй бухгалтериясы. Қаржы деректері ерекше — оны қалай қорғайтынымызды маркетинг сөздерсіз көрсетеміз.

Басты сұрақтарға үш қысқа жауап

Қалай шифрленеді

Тасымалдау кезінде TLS 1.3 (Let's Encrypt). Сыртқы API кілттері, банк токендері және брокер құпиялары — әр жазба үшін бірегей IV-мен AES-256-GCM. Парольдер — bcrypt (12 раунд). Шифрлеу кілті дерекқорда емес, env-те тұрады.

Қайда сақталады

Hetzner-дегі (Германия, ЕО) managed данада PostgreSQL 16. Оқшауланған Docker желісі, дерекқорға сыртқы байланыс жоқ. Сақтық көшірмелер — күн сайын, жүктеу алдында шифрленеді, 30 күн сақталады.

Қалай жойылады

Тіркелгінің hard-delete бір қадамда: транзакциялар, шоттар, санаттар, валюталар, токендер каскадпен жойылады. Soft-delete кестелері жоқ, «бір кездейсоқтыққа» арналған архив жоқ. Сол email бойынша маркетинг лидтері — бөлек erase-hook (GDPR 17-бап).

Қорғаныстың алты бағанасы

Аутентификация

JWT негізіндегі NextAuth.js v5, парольдер bcrypt-пен хештеледі. Login throttling — идентификатор бойынша 5 әрекет / 15 мин және IP бойынша 20 / 15 мин. Қалау бойынша Google OAuth. Парольді қалпына келтіру 32-байттық токенмен жүреді; дерекқорда тек оның SHA-256 хеші ғана сақталады.

«At rest» шифрлеу

Сыртқы API кілттері (банктер, Resend, Anthropic) және брокер құпиялары AES-256-GCM арқылы шифрленеді. Кілт серверден ешқашан кетпейді. Әрбір банк байланысының өзіндік 32-байттық hex webhook құпиясы бар.

Пайдаланушы деректерінің оқшаулануы

Әрбір UPDATE/DELETE операциясы `userId` бойынша сүзіледі. IDOR қорғанысы `assertCanAccessAccount/Category` ішінде орталықтандырылған — басқа біреудің шотына кіру 403 қайтарады, 404 емес. Ортақ отбасылық шоттар нақты OWNER/MEMBER/VIEWER рөлдерін пайдаланады.

Сессиялар мен revocation

Артып отыратын `session_version` бар JWT. Пароль өзгерту, тіркелгіні бұғаттау немесе рөлді ауыстыру — барлық белсенді сессияларды жарамсыз етеді. Mobile-API refresh токендері әр жаңартуда ротацияланады.

GDPR және құпиялылық

Тіркелгінің hard-delete барлық транзакциялар, шоттар мен санаттарды бір транзакцияда каскадпен жояды. Деректерді экспорттау — CSV/XLSX/PDF бір батырмамен. Cookie consent екі санатпен (essential / functional), аналитика жоқ, трекерлер жоқ.

Аудит және бақыланушылық

Барлық админ әрекеттері мен пайдаланушының сезімтал операциялары IP, user-agent және source-пен бірге `audit_log`-қа жазылады. Login әрекеттерінің логтары 30 күн сақталады. Stripe webhook оқиғалары сәтсіздік кезінде қауіпсіз replay үшін бөлек idempotency журналында тұрады.

Біз жасамайтын нәрселер

  • Сіздің деректеріңізді үшінші тұлғаларға сатпаймыз және бермейміз. Кіріс көзіміз — Pro жазылым, жарнама емес.
  • Пайдаланушы беттерінде веб-аналитика мен трекерлерді іске қоспаймыз — Google Analytics, Mixpanel, Hotjar жоқ.
  • Парольдерді ашық түрде сақтамаймыз — 12 раундтық bcrypt, backdoor-recovery жоқ.
  • Сіздің теңгеріміңіз бен транзакцияларыңызды әріптес сайттарға ендірмейміз — виджет жоқ, ағып кететін ештеңе жоқ.

Банк синхронизациясы — нақты не бөлісіледі

Егер сіз Monobank немесе GoCardless арқылы PSD2 банкін қоссаңыз, біз тек транзакцияларды синхрондау үшін қажеттіні аламыз: шығыс төлемдер, кіріс аударымдар, шот қалдықтары. Банк жағында ешқандай жеке деректер жоқ (паспорт, фото, биометрия). Банктің API токені AES-256-GCM арқылы шифрленген түрде сақталады; қол жетімділікті Параметрлер → Банктер бөлімінен бір батырмамен жоюға болады. GoCardless келісімі PSD2 талабы бойынша әр 90 күн сайын аяқталады — біз 7 күн бұрын ескертеміз.

Қауіпсіздік туралы жиі қойылатын сұрақтар

Серверлер физикалық тұрғыдан қайда орналасқан және деректер кімдікі?

Серверлер Hetzner Франкфурт деректер орталығында (Германия, ЕО). Деректерді бақылаушы — MyFina иесі; ешқандай агрегатор-делдалдар жоқ, АҚШ-та орналасқан бұлт провайдерлері жоқ. Толық субпроцессорлар тізімі /security/subprocessors бетінде.

MyFina жабылса деректеріме не болады?

Кем дегенде 30 күн бұрын біз сізге хабарламамен email жібереміз және CSV / XLSX / PDF форматтарында «Бәрін жүктеу» түймесі болады. Grace кезеңінен кейін дерекқор жойылады. Бұл біздің Шарттарымыздағы операциялық міндеттеме, маркетингтік уәде емес.

Аккаунтымды толығымен жоюға бола ма?

Иә. Параметрлер → Деректер → Аккаунтты жою — бір DB транзакциясындағы hard-delete: транзакциялар, шоттар, санаттар, токендар және сол email-мен байланысты маркетингтік лидтер каскадты түрде жойылады. Soft-delete жоқ, «болашаққа сақтайық» архивтері жоқ. GDPR 17-бабына толық сәйкес.

MyFina ішінде менің қаржылық деректерімді кім көреді?

«Қызметкерлерден» ешкімде сіздің қаржылық деректеріңізге үнемі қол жетімділік жоқ. Иесі тек қауіпсіздік оқиғасы кезінде немесе support арқылы сіздің анық сұрауыңыз бойынша дерекқорға қол жеткізе алады. Барлық әкімшілік әрекеттер IP және user-agent-пен audit_log-қа жазылады.

Егер ноутбугымды ұрласа — MyFina құпиясөзі мені қорғай ма?

Браузер сессиялары — TTL-мен JWT, «мәңгі кірген» емес. Егер ағымдағы браузеріңіз шығарылған болса, ешкім құпиясөзсіз кіре алмайды. Сессия белсенді болса — ОЖ lock-screen-ін қолданыңыз және/немесе басқа құрылғыдан құпиясөзді ауыстырыңыз (бұл барлық белсенді сессияларды бірден жарамсыз етеді).

Сіз Google Analytics, Facebook Pixel немесе басқа трекерлерге қосылғансыз ба?

Жоқ. Пайдаланушы беттерінде бір де бір аналитикалық скрипт жұмыс істемейді. Cookie баннері тек екі санатты көрсетеді — essential (NextAuth сессиясы) және functional (реферал сілтемелері). Analytics санаты жоқ, өйткені талдайтын нәрсе жоқ.

Сіз өзіңіз тексере алатын нәрселер

Жоғарыдағы әрбір тұжырым код пен API арқылы тексерілуге жатады.

  • Шифрлеу: src/lib/crypto.ts (AES-256-GCM, randomBytes IV, auth tag).
  • Аутентификация: src/auth.ts, src/lib/auth/rate-limit.ts.
  • Авторизация: src/lib/auth/ownership.ts (assertCanAccessAccount).
  • Ашық API: https://app.my-fina.com/api/openapi (OpenAPI 3.1).
  • Health endpoint: https://app.my-fina.com/api/health (көпшілікке ашық liveness).

Қауіпсіздік туралы хабарландыруларды алу

CVE-лер, қауіпсіздік патчтары және қауіп моделінің өзгерістері туралы білу үшін жазылыңыз. Маркетинг жоқ.

Pro қолжетімді болғанда хабарлау

Бір email. Спам жоқ. Бір шертумен бас тарту.

GDPR-ге сай · деректер ЕО-да өңделедіСоңғы жаңарту: 2026 жылғы 3 маусым