Skip to content

Xavfsizlik

ProID OAuth 2.0 (authorization_code) asosida ishlaydi. Xavfsiz integratsiya uchun quyidagilarga amal qiling.

client_secret ni himoya qiling

  • client_secret va token almashinuvi faqat backend’da bo’lsin.
  • Uni frontend JS, mobil ilova bundle yoki public repozitoriyaga hech qachon joylashtirmang.
  • Muhit o’zgaruvchisi (.env) da saqlang, kodda hardcode qilmang.

redirect_uri ni qat’iy belgilang

  • ProID redirect_uri ni authorize va token bosqichida solishtiradi — mos kelmasa rad etadi.
  • Ro’yxatdan aniq, to’liq manzil o’tkazing (wildcards yo’q).
  • Open-redirect’dan saqlaning: callback endpoint’ingiz code dan boshqa hech narsani ishonchli deb qabul qilmasin.

Authorization code

  • Bir martalik va qisqa muddatli (~10 daqiqa) — olgan zahoti almashtiring.
  • code ni URL/loglarda uzoq saqlamang.
  • Token muvaffaqiyatli olingach code yaroqsiz bo’ladi.

Access token’ni saqlash

  • Token’ni server tomon sessiyada yoki HttpOnly + Secure cookie’da saqlang.
  • localStorage da saqlashdan qoching (XSS xatari).
  • expires_in (~10 kun) tugagach qayta autentifikatsiya qiling.

Transport

  • Barcha so’rovlar HTTPS orqali.
  • Token so’rovi application/x-www-form-urlencoded bilan.

Rate limit va qayta urinish

  • Endpointlar cheklangan (qarang: Rate limit).
  • 429 da darhol qayta urinmang — Retry-After ni kuting (exponential backoff).

Tekshiruv ro’yxati (checklist)

  • client_secret faqat backend’da, .env da
  • redirect_uri hamma joyda aynan bir xil
  • Token almashinuvi server tomonda
  • Token HttpOnly/Secure cookie yoki server sessiyada
  • Hamma so’rov HTTPS
  • 429/5xx uchun backoff bilan retry