Logo GH

API təhlükəsizliyi və sorğu filtrasiyası

1) Niyə lazımdır

API platformanın xarici və daxili sərhədidir. Sorğuların autentifikasiyası, avtorizasiyası, validasiyası və ya normallaşdırılmasında hər hansı bir səhv zəifliklərin istismarına çevrilir (BOLA/İDOR, injection, SSRF, kütləvi ifrat, resurs tükənməsi). Məqsəd: ölçülə bilən SLO və risk nəzarəti ilə perimetrdən biznes qaydalarına qədər çox səviyyəli qorunma (defense-in-depth) yaratmaq.

2) API-nin inventarlaşdırılması və təsnifatı

API kataloqu: bütün xidmətlərin reyestri, sahibləri, versiyaları, müştəri növləri (web, mobile, partnyorlar), rejimi (açıq/tərəfdaş/daxili), PII/maliyyə məlumatları.
Kritik: Yüksək (maliyyə əməliyyatları/avtorizasiya), Orta (profil oxu), Aşağı (ictimai kataloqlar).
Hücum səthi: REST, GraphQL, gRPC, WebSocket, webhooks.
Status: prod/staging/experimental, deprekeyt siyasəti, token/açar ömrü.
Shadow/tərk API: log ingrest vasitəsilə aşkar, eBPF/Service Mesh telemetriya, kataloq ilə müqayisə.

3) Təhdid modeli (qısa)

İdentifikasiya: token oğurluğu, seans fiksasiyası, MitM, replay.
Avtorizasiya: BOLA/İDOR, üfüqi/şaquli eskalasiya.
Giriş: enjeksiyon (SQL/NoSQL/LDAP), şablon/serilizasiya, yol traversal, başlıqlar.
Trafik: DDoS/L7-fluds, yavaş sorğular, fantom retrajlar.
İnteqrasiya: təhlükəsiz webhooks, URL parametrləri vasitəsilə SSRF, download fayllar/skanlar.
Məntiq: bonuslardan sui-istifadə, yarış, uyğunsuzluq.

4) Əsas təhlükəsizlik standartı (minimum)

1. TLS 1. 2 + hər yerdə; HSTS; zəif şifrələr söndürülmüşdür.
2. Autentifikasiya: müştərilər üçün OAuth2/OIDC, mTLS/və ya HMAC - xidmət-xidmət.
3. Avtorizasiya: mərkəzləşdirilmiş PDP (RBAC/ABAC), obyekt səviyyəsində yoxlama (BOLA).
4. Validasiya: sərt sxem (OpenAPI/JSON Schema/Protobuf), lazımsız sahələrdə imtina.
5. Limitlər: rate/quotas + burst, per-müştəri/per-IP/per-token.
6. Write əməliyyatlarında idempotentlik, təkrarlardan/yarışlardan qorunma.
7. WAF/Gateway filtrasiya: yolların/başlıqların normallaşdırılması, deny vərəqləri, payload-anti-nümunələr bloku.
8. Secrets: KMS/Vault, açar/sertifikatların rotasiyası, sızma nəzarəti.
9. Müşahidə: izləmə, audit-təhlükəsizlik (kim/nə/nə zaman/nəticə), risk.
10. Prosedurlar: playbook hadisələr, test cases və müntəzəm pentests/DAST.

5) Tokenlərin autentifikasiyası və idarə edilməsi

OAuth2/OIDC: qısa ömürlü access-tokenlər, OIDC ilə ciddi şəkildə refresh; audience/issuer/exp gateway üzərində yoxlanılır.
JWT: RS256/ES256; minimum terminal dəsti; 'nbf/exp/aud' tələb olunur; PII saxlama qadağası. JWKS vasitəsilə açarların rotasiyası.
DPoP/PoP: replay/oğurluq riskini azaltmaq üçün tokenin müştəri açarına bağlanması.
Daxili sistemlər və etibarlı tərəfdaşlar üçün mTLS (CN/SAN, CRL/OCSP sertifikatlaşdırma).
HMAC (imzalar): determinated kanonikalizasiya (üsul + yol + timestamp + nonce + body-hash); icazə verilən vaxt pəncərəsi (± 300s).
Brauzer seansları: SameSite = strict/lax, HttpOnly, Secure; CSRF-dən qorunma (double submit/state-tokenlər).
Müştəri saxlama: mobil - təhlükəsiz saxlama (Keychain/Keystore), debag qorunması, pinninq sertifikatları.

6) Avtorizasiya (BOLA-first)

Object-level: Hər bir əməliyyat xüsusi resurs (resource owner/scope/atributlar) hüququnu yoxlayır.
RBAC/ABAC: rollar + atributlar (ölkə, seqment, risk limitləri, KYC səviyyəsi).
Siyasətçilər: deny-by-default; açıq allow; siyasət versiyası; mənfi hallar üçün testlər.
Cache Solutions: adaptive TTL + rolları/seqmentləri dəyişdikdə əlillik.

7) Filtrasiya və tələblərin normallaşdırılması (Gateway/WAF)

Normallaşma: təkrar slaytların sıxılması, qadağa '../', bir dəfə deşifrə, boşluqların/sıfır baytların kəsilməsi.
Başlıqlar: allow-list ('Host', 'Content-Type', 'Accept', 'Authorization', 'Date', 'Idempotency-Key', lazımi trace-başlıqlar).
Metodlar: 'GET/HEAD' bədən olmadan; 'POST/PUT/PATCH' - 'application/json' növü ilə və ya ciddi icazə verilir.
Ölçüləri: max-body, max-headers, max-path; early-reject 413/431.
Fayllar: MIME validator, antivirus/sandbox, aktiv məzmun qadağası, resise/sanitize görüntülər.
URL-yönləndirmə/fetçi: SSRF bloku (deny private ranges/metadata IP, sxem yalnız 'https', allow-list domenləri).
SQL/NoSQL nümunələri: WAF rule-sets vasitəsilə enjeksiyon işarələri + server parametrləşdirilməsi sorğular.

Başlıq siyasəti nümunəsi (psevdo formatı)


deny_headers: ["X-Forwarded-Proto","X-Original-URL","Proxy-Connection","Destination"]
require_headers: ["Authorization" (для protected), "Content-Type" (для write)]
strip_duplicates: true max_header_count: 32 max_header_size: 16KB

8) Limitlər, kvotalar və antibot qorunması

Rate limiting: token-bucket/ leaky-bucket; səviyyələri - per IP, per API key, per user, per org.
Quotas: gündəlik/aylıq, write/expensive metodları üçün ayrı.
Adaptasiya: anomaliyalar zamanı dinamik sərtləşmə (sudden burst/credential stuffing).
Slow-loris/slow-POST: oxu/keep-alive vaxtları, paralel əlaqələrin məhdudlaşdırılması.
Antibot: device-fingerprint, davranış əlamətləri, proof-of-work/capcha artan risk, tor/proxy şəbəkələrinin siyahısı.
IP-nəzarət: Geo/ASN filtrləri, «çirkli» alt şəbəkələrin deny vərəqləri, tərəfdaşlar/admin panelləri üçün allow vərəqləri.

9) Giriş və sxemlərin validasiyası

Fail-closed: sxemdən keçməyən hər şey - 400. Əlavə sahələr - rədd.
Növləri/diapazonları: ədədlər, tarixlər (UTC/ISO-8601), enum qiymətləri, sətir uzunluqları, reqeksplər.
JSON keyfiyyəti: max-nesting, böyük massivləri/açarları qadağan, canonical order (isteğe bağlı).
Biznes-validasiya: «Idempotency-Key» üzrə idempotentlik; anti-frod qaydaları (əməliyyatların tezlik limitləri, amount caps).
GraphQL: depth/complexity-limitləri, allow-listed queries, per-field authorization.
gRPC: ciddi Protobuf sxemləri, məcburi sahələr, mesaj ölçüsü limitləri.

10) Webhooks və xarici çağırışlar

İmza: HMAC/nonce; emaldan əvvəl yoxlama; pəncərə +/- 5 dəqiqə.
Çatdırılma: eksponent fasilə və jitter ilə retras; max-cəhd; hadisə ID-nin deuplikasiyası.
IP allow-list təchizatçı; ayrı alt domen/yol; minimum hosting yığını.
Cavablar: 2xx yalnız uğurlu daxili yazıdan sonra; əks halda 4xx/5xx başa düşülən kodu ilə.
Çıxış SSRF nəzarəti: callback URL - allow-list, şəxsi ünvanların qadağan edilməsi.

11) Şifrələmə və sirlərin idarə edilməsi

Kanalda: TLS 1. 2+/1. 3, pinning, ciddi şifrə siyasəti.
Dinc: DB/obyekt anbarının şifrələnməsi, PII/findan üçün fərdi açarlar.
KMS/Vault: mərkəzləşdirilmiş gizli saxlama, qısa TTL, avtomatik rotasiya.
Açarlar və sertifikatlar: mühit üçün ayrı; emissiya auditi; log çıxış qadağan.
Token-introspection: offline-rəy siyahıları (revocation), qısa 'exp'.

12) Müşahidə, audit və cavab

Təhlükəsizlik qeydləri: autentifikasiya cəhdləri/uğurları, avtorizasiya uğursuzluqları, rate-limit hadisələri, rolların/limitlərin dəyişdirilməsi.
Tracking: correlation-ID keçid; xarici çağırışlar izləmə.
Metriklər: RPS, P95/P99 latency, error-rate kodları, 401/403/429 payı, hit-rate limitləri, anomaliyalar.
Alertlər: 401/403/429 sıçrayışları, 5xx böyümə, tez-tez idempotency münaqişələri, QL-complexity qrafiklərinin kəskin sapmaları.
Playbooks: açarları/tokenləri bloklamaq, qaydaları tez geri qaytarmaq, deny siyahısını qızdırmaq, xidmət sahiblərini xəbərdar etmək.
Forensika: mübahisəli payload (PII təhlükəsiz redaktə ilə), izolyasiya stendində replay saxlamaq.

13) Müştəriyə səhvlər və cavablar

Vahid səhv formatı (kod, mesaj, trace-id, kateqoriya).
Sızma yoxdur: SQL, cədvəl adları, daxili ID-lər açıqlanmır; 403 əvəzinə «niyə dəqiq deyil».
Kodlar: 400 (validasiya), 401 (identifikasiya yoxdur), 403 (heç bir icazə yoxdur), 404 (varlığı gizlətmək), 405/406, 413/429, 500/503.
Retry-Hints: для 429 — `Retry-After`; idempotentlik üçün - eyni açarla təkrar məsləhət.

14) Memarlıq nümunələri

Zero-Trust: mTLS, bütün xidmətlər arasında açıq avtorizasiya, minimal imtiyazlar.
API-şluz + WAF + xidmət-mesh: vəzifə bölgüsü - perimetri, L7 siyasəti, daxili identifikasiya.
Canary/Blue-Green: Yeni filtrasiya qaydalarını tədricən müşahidə ilə çıxarın.
Fail-closed: kritik write üçün - səhv əməliyyata yol verməkdən daha təhlükəsiz imtina etmək daha yaxşıdır.
Backpressure: növbələr/buferlər, circuit breaker, timeouts/budgets.

15) Praktiki qaydaların nümunələri (psevdo- )

15. 1 Yol və metodların məhdudlaşdırılması


/api/v1/payments:
allow_methods: [POST, GET]
auth: oauth2_required body:
content_type: application/json max_size: 256KB

15. 2 İdempotentlik


require_header: Idempotency-Key (UUIDv4)
store: redis:ttl=24h on_duplicate: return_previous_result

15. 3 Sorğu imzası (HMAC)


signature:
scheme: "HMAC-SHA256"
required_headers: ["X-Signature","X-Timestamp","X-Nonce"]
allowed_drift: 300s string_to_sign: METHOD + "\n" + PATH + "\n" + SHA256(body) + "\n" + X-Timestamp + "\n" + X-Nonce

15. 4 SSRF qorunması


outbound_http:
allowlist_domains: ["kyc. partner. com","psp. example. net"]
block_private_ip: true require_https: true

15. 5 GraphQL limiti


graphql:
max_depth: 8 max_complexity: 500 allowlisted_operations_only: true

16) iGaming/Maliyyə Xüsusiyyətləri

Seqment limitləri: COP/ölkə/risk profilindən asılıdır.
Müvəqqəti pəncərələr: depozit/çıxarış tezliyi qaydaları, əməliyyatlar arasında «soyutma».
Anti-sui-istifadə bonusları: hesaba/cihaza/IP/ödəniş alətinə bağlı bloklama.
Tənzimləyicilərin tələblərinin auditi: hərəkət və həllərin qeydlərinin (KYC/AML) saxlanması, retenşn dövrləri, dəyişməz jurnallar.

17) Prod-hazırlıq nəzarət siyahısı

  • Tam API kataloqu və məlumat axını xəritəsi (PII/maliyyə qeyd olunur).
  • OpenAPI/Protobuf sxemləri, CI-də validasiya testləri və müqavilələr.
  • mTLS/HMAC/OAuth2 konfiqurasiya; qısa TTL tokenlər; açarların rotasiyası.
  • BOLA testləri və mənfi avtorizasiya halları; mərkəzləşdirilmiş PDP.
  • Limitlər/kvotalar/anti-bot, slow-loris qorunması; IP filtrləri.
  • WAF/Gateway normallaşdırma qaydaları, anti-inyeksiya işarələri.
  • Write əməliyyatlarının idempotentliyi; replay qorunması.
  • Webhook imzaları və allow-list; izolyasiya edilmiş endpoints.
  • KMS/Vault sirləri; şifrələnmiş storajlar; anomaliyada alertlər.
  • Dashbordlar, alertlər, audit-loqlar; təcrübəli playbooks hadisələr.
  • Müntəzəm pentest/DAST/SAST, boşluq yolları və deple yamalar.

18) Antipattern (nə mümkün deyil)

Etibarlı 'X-Forwarded-' Onun perimetri sərt TLS terminasiyası olmadan.
Ixtiyari «Content-Type» və «yumşaq» JSON sxemlərini qəbul edin.
Uzun ömürlü JWT geri çağırılmadan/rotasiya.
Mərkəzləşdirilmiş siyasət olmadan kodda rolları və biznes qaydalarını qarışdırın.
Sirləri olan loqlar/PII; ətraflı 500-mesajlar.
Limitsiz və avtorizasiyasız «müvəqqəti» açıq endpointlər.

19) Version və deprekeyt

Yol/başlıq versiyaları; dəstək siyasəti (məsələn, N-2).
Elanlar: Deprekeytin vaxtı, köhnə versiyaların istifadəsinin monitorinqi, idarə olunan bağlantı.
Uyğunluq: Müştərilərin/tərəfdaşların müqavilələri və test matrisləri.

20) Təhlükəsizlik testi

Sxemlərin/siyasətlərin kontrakt testləri, giriş fuzzing, negative auth.
Limitlər/kvotalar ilə performans profilləri, qoruyucu sınaq (chaos-trafik).
Red-team/bug-bounty: BOLA, SSRF, imzalar/repleylər, GraphQL-complexity ssenariləri.

TL; DR

1. API kataloqu + ciddi sxemlər.
2. müştərilər üçün OAuth2/OIDC, mTLS/HMAC daxili.
3. Hər resurs üçün BOLA perimetri (ABAC/RBAC).
4. Filtrasiya: yolların/başlıqların normallaşdırılması, limitlər, WAF qaydaları.
5. İdempotentlik, imzalar, replay/SSRF-dən qorunma.
6. KMS/Vault və sirlərin rotasiyası.
7. Müşahidə, risk, playbooks.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.