АЮУЛГҮЙ БАЙДАЛ

Хамгаалалт нэмэлт биш
давхарга бүрт суурилсан

Нэвтрэлтээс өгөгдлийн сан, хөтчөөс CI хүртэл — нэг давхарга алдвал дараагийнх нь барина.

6хамгаалалтын давхарга
36кодод хэрэгжсэн хяналт
3автомат скан push бүрт
0нууц түлхүүр хөтөчид
36 хяналтыг харах →
clickjackingframe-ancestors none
CSRFmiddleware гинжинд
Open redirectзөвхөн HTTPS
06Хангамжийн гинж ба CIgovulncheckgosec
05Вэб хамгаалалтCSPCSRF
04Танилт ба session256 бит
03OAuth2 / OIDCPKCE
02Оператор ба аудитTOTP
01ӨгөгдөлRLS
PostgreSQL · dbguard
ДЭЛХИЙН СТАНДАРТ

Аюулгүй байдал
дэлхийн жишгээр

Nexus-ийн хамгаалалт нь дотооддоо зохиосон дүрэм биш — олон улсад хүлээн зөвшөөрөгдсөн жишгийг кодод буулгасан хэрэгжилт юм.

ВэбOWASP Top 10-ын гол эрсдэлүүдийг (CSP, CSRF, clickjacking, open redirect) хаана.
ТанилтOAuth 2.0-ийн аюулгүй байдлын шилдэг практик ба OpenID Connect-ийн дагуу PKCE, refresh token эргэлт, RS256 гарын үсэгтэй id_token-оор ажиллана.
Өгөгдөл«Defense in depth» зарчмаар давхар ханатай — нэг давхарга алдвал дараагийнх нь барина.
Вэб давхарга
OWASP Top 10
CSP nonce · strict-dynamicCSRF middlewareframe-ancestors noneOpen redirect хориотой
4 / 4 кодод
Танилт
OAuth 2.0 Security BCP
PKCE заавалRefresh token эргэлтconstant-time харьцуулалтБүртгэлтэй redirect URI
4 / 4 кодод
IdP
OpenID Connect
RS256 id_token/.well-known/jwks.jsonAccess 1 цаг · opaqueintrospect
4 / 4 кодод
Өгөгдөл
Defense in depth
tenant_id шүүлтPostgreSQL RLS · dbguardSecretSealerage · fail-closed
4 / 4 кодод
Хяналт бүр нь баримт бичигт биш, тестээр баталгаажсан кодод оршдог.govulncheckgosecgolangci-lint
ӨГӨГДЛИЙН ТУСГААРЛАЛТ

Мартагдсан WHERE ч
өөр байгууллагын мөр буцаахгүй

Хоёр давхар хана. Ирээдүйд өөр хүний бичсэн app-д шүүлт дутвал — бусдын өгөгдөл биш, хоосон хариу буцна.

Apptenant_id шүүлтRLS · dbguardPostgreSQL
1-Р ХАНАQuery бүрийн шүүлтАппын код дотор · үндсэн хяналт
SELECT … FROM invoices WHERE tenant_id = $1
Query бүр байгууллагын түлхүүрийг авч явна.
Аппын кодҮндсэн хяналт
2-Р ХАНАӨгөгдлийн сангийн RLS — dbguardPostgreSQL дотор · код мартсан ч ажиллана
SET ROLE gerege_nexus_tenant;
SET app.current_tenant = <id>
Холболт гарах мөчид хэн, аль байгууллага гэдгийг Postgres өөрөө мэднэ — бодлого нь шүүлтийг дахин хийнэ.
PostgreSQLRLS бодлого
Хэрэв app-д WHERE мартагдвал?Нэг л query, хоёр өөр үр дүн
SELECT … FROM invoices -- WHERE байхгүй
Ганц давхар хамгаалалттай болБүх байгууллагын нэхэмжлэл нэг дэлгэцэнд гарна.
БАЙГУУЛЛАГАНЭХЭМЖЛЭЛДҮН
А ХХКINV-04121.2сая
Б ХХКINV-0388860мян
В ХХКINV-03712.4сая
Г ХХКINV-0355540мян
4 байгууллага · алдагдал
Nexus дээрЗөвхөн өөрийн байгууллагын мөр — бусдынх нь RLS-ийн цаана үлдэнэ.
БАЙГУУЛЛАГАНЭХЭМЖЛЭЛДҮН
А ХХКINV-04121.2сая
Б ХХКINV-0388860мян
В ХХКINV-03712.4сая
Г ХХКINV-0355540мян
1 байгууллага · RLS
Байгууллагагүй ажил (нэвтрэлт, OAuth callback) тусдаа нэвтрэх role-оор явна — цоорхой биш, зориулалтын зам.
schema · test
Гурван schemaworkspace · registry · operator — хүснэгтийн тоог тест тоолж, хил давахыг баринаCI-д тест барина
compile graph
Урсгалын хилАжлын, хүний, операторын урсгал хоорондоо import хийхгүйг компиляцын граф шалганаCI-д тест барина
250 зам
Замын golden файлШинэ HTTP зам бүр файлд бичигдэнэ — санамсаргүй нэмэгдэж чадахгүйCI-д тест барина
36 ХЯНАЛТ

6 давхарга · кодод хэрэгжсэн

Танилт ба sessionOAuth2 / OIDCӨгөгдөлВэб хамгаалалтОператор ба аудитХангамжийн гинж ба CI
Танилт ба sessionХэн бэ гэдгийг найдвартай
Session token 256 бит — санд зөвхөн SHA-256 digest
Нууц үг bcrypt-ээр hash хийгдэнэ
12 цагийн хугацаа, 90 мин идэвхгүй бол хаагдана
15 минутад 5 буруу оролдлого — түгжээ
Нэвтрэлтэд IP тус бүрийн хурдны хязгаар
Хасагдсан гишүүний session тэр дороо зогсоно
01 / 066 хяналт
OAuth2 / OIDCПлатформ өөрөө IdP
authorization_code-д PKCE заавал
Refresh token эргэлт ба давтан ашиглалт илрүүлэх
Клиентийн нууцыг constant-time харьцуулна
Access token 1 цаг, opaque — introspect-оор
id_token RS256, JWKS-ээр баталгаажна
Зөвхөн бүртгэлтэй redirect URI
02 / 066 хяналт
ӨгөгдөлБайгууллага бүр өөрийн хананы цаана
Query бүр tenant_id-аар шүүгдэнэ
PostgreSQL RLS — dbguard хоёр дахь хана
Гурван schema, хилийг тест барина
Credential-ийг SecretSealer битүүмжилнэ
Нөөц age-ээр шифрлэгдэнэ — fail-closed
Суулгаагүй, унтраасан аппын зам 403
03 / 066 хяналт
Вэб хамгаалалтХөтөч дээрх халдлагаас
CSP — хүсэлт бүрт шинэ nonce, strict-dynamic
frame-ancestors none — clickjacking хаалттай
CSRF хамгаалалт middleware гинжинд
HSTS, X-Content-Type-Options production-д
Cookie: HttpOnly, SameSite, Secure
Open redirect хориотой — зөвхөн HTTPS, credential-гүй
04 / 066 хяналт
Оператор ба аудитУдирдлагад ч хязгаар бий
Тусдаа origin, тусдаа cookie
Хоёр дахь хүчин зүйл (TOTP) заавал
4 үүрэг · 15 чадвар — нэг хүснэгтээс
Impersonation шалтгаантай, хугацаатай, бүртгэлтэй
Консолын бичих үйлдэл бүр аудитад
Устгал 30 хоногийн дараа, break-glass сэрэмжлүүлэгтэй
05 / 066 хяналт
Хангамжийн гинж ба CIКод орохоос өмнө шалгагдана
govulncheck — хамаарлын эмзэг байдал
gosec — эх кодын статик шинжилгээ
golangci-lint — зөв байдал
Даваа бүр хуваарьт эмзэг байдлын скан
Каталог Ed25519 гарын үсэгтэй
Production-д төрийн системийн mock унтарна
06 / 066 хяналт
Эмзэг байдал олсон уу?Нийтийн issue-д биш, хувийн журмаар мэдээлнэ үү — SECURITY.md-д дэлгэрэнгүй.
security@gerege.mn
ЭХЛЭХ

Систем бүрээ дахин
бүтээхээ боль.
Nexus дээр босго.

Танилт, эрх, гарын үсэг, AI, хяналт — бэлэн. Та зөвхөн өөрийн бизнесийн логикоо бичнэ.

✓Танилт✓Эрх✓Гарын үсэг✓AI✓Хяналт