GH GambleHub

Təhlükəsizlik Siyasəti və CSP

1) Niyə təhlükəsizlik siyasətinə ehtiyacınız var

Müasir frontend və API bir çox mənbədən (CDN, analitik, PSP, 3DS, söhbətlər) asılıdır. Sərt siyasətlər olmadan XSS, klikcekinq, məlumat sızması və seans oğurluğu riskləri artır. Təhlükəsizlik siyasəti, brauzeri «yalnız açıq şəkildə icazə verilir» (allow-list) modelinə çevirməklə, default olaraq icazə verilənləri məhdudlaşdırır.

2) Əsas sütunlar

CSP (Content Security Policy) - JS/CSS/media mənbələrinin və davranışlarının mərkəzləşdirilmiş «menyusu».
Trusted Types - tip səviyyəsində DOM-XSS-dən qorunma.
SRI (Subresource Integrity) - skriptlərin/stillərin bütövlüyünə nəzarət.
COOP/COEP/CORP - mənbələr arasında kontekstlərin və resursların sərt izolyasiyasıdır.
Fetch Metadata ('Sec-Fetch-') - saytın sorğularını filtrləşdirmək üçün server həlli.
CORS - API domenlərarası giriş siyasəti.
Klassik başlıqlar: HSTS, 'X-Frame-Options '/' frame-ancestors', 'Referrer-Policy', 'Permissions-Policy', SameSite-cookies.

3) CSP: əsas və prinsipləri

3. 1 Direktivlər (açar)

'default-src' - digər direktivlər üçün defolt.
'script-src' - JS, nonce/hash, 'strict-dynamic', 'report-sample' mənbələri.
'style-src' - CSS mənbələri; minimuma endirmək 'unsafe-inline'.
`img-src`, `font-src`, `media-src`, `object-src` (обычно `none`).
'connect-src' - şəbəkə sorğuları (XHR/fetch/WebSocket).
'frame-src '/' child-src' - üçüncü tərəf çərçivələri (PSP, 3DS).
'frame-ancestors' - kim bizim veb daxil edə bilər (anti-click).
'base-uri' - <base> '.
'form-action' - formaların pozulmasına icazə verilir.
'upgrade-insecure-requests', 'block-all-mixed-content' - HTTP/HTTPS qarışığı ilə mübarizə.
'report-uri '/' report-to' - pozuntuları hara göndərmək olar.

3. 2 Nonce и hash

Nonce-yanaşma: Hər bir HTTP cavabında kriptovalyutası 'nonce' yaratmaq, inline-skriptlərə '<script nonce = "...>' və 'script-src' nonce-... 'əlavə etmək.
Hash-yanaşma: Sabit hash daxili məzmun. Statik HTML üçün uyğundur, dinamik üçün əlverişsizdir.
'strict-dynamic': yalnız «etibarlı» skript (nonce/hash ilə) yüklənmiş skriptlərə etibar edin. Dinamik yükləmə zamanı hədəf domenləri sadalamaq ehtiyacını aradan qaldırır, lakin müasir brauzerləri tələb edir.

3. 3 qadağa 'unsafe-'

'unsafe-inline', 'unsafe-eval' çəkinin. Framework eval (məsələn, dev-də source-map) tələb edirsə, yalnız dev.
Stillər üçün - 'nonce' və ya 'hash' istifadə edin, mümkünsə, İnternet olmadan.

3. 4 Ciddi CSP nümunəsi (döyüş istinad)


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
💡 Müvəqqəti olaraq 'Content-Security-Policy-Report-Only' kimi işə salmaq, hesabatları toplamaq, düzəltmək və sonra enforcing rejiminə keçirmək olar.

4) Trusted Types (DOM-XSS)

'Content-Security-Policy: require-trusted-types-for' script 'direktivini daxil edin; trusted-types app default`.
Kod ('window. trustedTypes. createPolicy('app', { createHTML() {... } })`).
Təhlükəli təyinatları qadağan edin ('element. innerHTML =...`) без Trusted Types.
Frameworks ilə inteqrasiya (React/Angular/Vue): təhlükəsiz API render istifadə, təhlükəli dangerouslySetInnerHTML qaçın.

5) SRI (CDN bütövlüyü)

Xarici '<script> '/' <link>' integrity = "sha256-"... crossorigin = "anonymous 'istifadə edin.
SRI CSP əvəz deyil, tamamlayır. CDN versiyasını yenilədikdə - heşi yeniləyin.

6) Klikcekinq və çərçivələr

Müasir üsul 'frame-ancestors' (köhnəlmiş 'X-Frame-Options' əvəz edir).

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!

İ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.