GH GambleHub

Xavfsizlik siyosati va CSP

1) Nima uchun xavfsizlik siyosati kerak?

Zamonaviy frontend va API ko’plab manbalarga (CDN, analitik, PSP, 3DS, chatlar) bog’liq. Qat’iy siyosatlarsiz XSS, klikjeking, ma’lumotlar tarqalishi va sessiyalarni o’g "irlash xavfi ortadi. Xavfsizlik siyosati brauzerni «faqat aniq ruxsat etilgan» (allow-list) modeliga oʻtkazish orqali andoza ruxsat berilganlarni cheklaydi.

2) Bazaviy ustunlar

CSP (Content Security Policy) - ruxsat etilgan manbalar va JS/CSS/media xulq-atvorining markazlashtirilgan «menyusi».
Trusted Types - tiplar darajasida DOM-XSS himoyasi.
SRI (Subresource Integrity) - skriptlar/uslublarning yaxlitligini nazorat qilish.
COOP/COEP/CORP - manbalar orasidagi kontekstlar va resurslarni qattiq izolyatsiya qilish.
Fetch Metadata (’Sec-Fetch-’) - sayt soʻrovlarini filtrlash uchun server yechimi.
CORS - API domenlararo foydalanish siyosati.
Klassik sarlavhalar: HSTS,’X-Frame-Options ’/’ frame-ancestors’,’Referrer-Policy’,’Permissions-Policy’, SameSite-cookies.

3) CSP: asos va tamoyillar

3. 1 Direktivalar (asosiy)

’default-src’ - qolgan direktivalar uchun defolt.
’script-src’ - JS, nonce/hash,’strict-dynamic’,’report-sample’manbalari.
’style-src’ - CSS manbalari; ’unsafe-inline’ ni minimallashtirish.
`img-src`, `font-src`, `media-src`, `object-src` (обычно `none`).
’connect-src’ - tarmoq soʻrovlari (XHR/fetch/WebSocket).
’frame-src ’/’ child-src’ - uchinchi tomon freymlari (PSP, 3DS).
’frame-ancestors’ - saytimizni kim joylashtirishi mumkin (anti-klikjeking).
’base-uri’ - almashtirishni taqiqlash’<base>’.
’form-action’ - bu yerda shakllarni sabmitlash mumkin.
’upgrade-insecure-requests’,’block-all-mixed-content’- HTTP/HTTPS miksiga qarshi kurash.
’report-uri ’/’ report-to - qoidabuzarliklarni qayerga yuborish kerak.

3. 2 Nonce и hash

Nonce-yondashuv: har bir HTTP javobida’nonce’kriptovalyutasini yaratish, inline-skriptlarga’<script nonce = "...>’va’script-src’nonce-...’qoʻshish.
Hash-yondashuv: inlayn tarkibidagi qatʼiy hash. Statik HTML uchun mos, dinamikada noqulay.
’strict-dynamic’: faqat «ishonchli» skript bilan yuklangan skriptlarga ishonish (nonce/hash bilan). Maqsadli domenlarni dinamik yuklashda sanab oʻtish zaruratini bartaraf etadi, ammo zamonaviy brauzerlarni talab qiladi.

3. 3 Taqiqlash’unsafe- ’

’unsafe-inline’,’unsafe-eval’dan qochish. Agar freymvork eval (masalan, dev’da source-map) ni talab qilsa, uni faqat dev’da yoqing.
Uslublar uchun’nonce’yoki’hash’dan foydalanish mumkin.

3. 4 Qattiq CSP misoli (jangovar mo’ljal)


Content-Security-Policy:
default-src 'none';
base-uri 'self';
object-src 'none';
script-src 'self' 'nonce-{RANDOM}' 'strict-dynamic' https://www. googletagmanager. com;
style-src 'self' 'nonce-{RANDOM}';
img-src 'self' data: https://images. example-cdn. com;
font-src 'self' https://fonts. gstatic. com;
connect-src 'self' https://api. example. com wss://ws. example. com;
frame-src https://3ds. psp. com https://pay. psp. com;
frame-ancestors 'none';
form-action 'self' https://pay. psp. com;
upgrade-insecure-requests;
report-to csp-endpoint; report-sample
💡 Vaqtincha’Content-Security-Policy-Report-Only’deb ishga tushirish, hisobotlarni yigʻish, tuzatish va enforcing rejimiga oʻtkazish mumkin.

4) Trusted Types (DOM-XSS)

’Content-Security-Policy: require-trusted-types-for’ script’direktivasini yoqing; trusted-types app default`.
Kodda yagona siyosatni yaratish (’window. trustedTypes. createPolicy('app', { createHTML() {... } })`).
Xavfsiz belgilashni taqiqlang (’element. innerHTML =...`) без Trusted Types.
Framework integratsiyasi (React/Angular/Vue): xavfsiz rendering API’laridan foydalaning, xavfli dangerouslySetInnerHTML’lardan qoching.

5) SRI (CDN yaxlitligi)

Tashqi’<script> ’/’ <link>’integrity = "sha256-"... crossorigin = "anonymous’dan foydalaning.
SRI CSP oʻrniga toʻldiradi. CDN versiyasini yangilashda - xeshni yangilang.

6) Klikjeking va freymlar

Zamonaviy usul -’frame-ancestors’(eskirgan’X-Frame-Options’oʻrnini bosadi).

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.