GH GambleHub

Коопсуздук саясаты жана CSP

1) Эмне үчүн коопсуздук саясаты керек

Заманбап frontend жана API көптөгөн булактардан көз каранды (CDN, аналитика, PSP, 3DS, чаттар). Катуу саясатсыз XSS, кликджекинг, маалымат агып кетүү жана сессияларды уурдоо тобокелдиктери жогорулайт. Коопсуздук саясаты браузерди "ачык гана уруксат берилген" (allow-list) моделине которуу менен демейки боюнча уруксат берилген нерсени чектейт.

2) Негизги мамылар

CSP (Content Security Policy) - уруксат берилген булактардын жана жүрүм-турумдун борборлоштурулган "меню" JS/CSS/медиа.
Trusted Types - түрү боюнча DOM-XSS коргоо.
SRI (Subresource Integrity) - скрипттердин/стилдердин бүтүндүгүн көзөмөлдөө.
COOP/COEP/CORP - булактардын ортосундагы контексттерди жана ресурстарды катуу изоляциялоо.
Fetch Metadata ('Sec-Fetch-') - cross-сайт суроо чыпкалоо үчүн Server чечим.
CORS - API домендер аралык жетүү саясаты.
Классикалык аталыштар: HSTS, 'X-Frame-Options '/' frame-ancestors', 'Referrer-Policy', 'Permissions-Policy', SameSite-cookies.

3) CSP: негиздери жана негиздери

3. 1 Директивалар (негизги)

'default-src' - башка директивалар үчүн дефолт.
'script-src' - JS, nonce/hash, 'strict-dynamic', 'report-sample' булактары.
'style-src' - CSS булактары; минималдаштыруу 'unsafe-inline'.
`img-src`, `font-src`, `media-src`, `object-src` (обычно `none`).
'connect-src' - тармактык суроолор (XHR/fetch/WebSocket).
'frame-src '/' child-src' - үчүнчү тараптын фреймдери (PSP, 3DS).
'frame-ancestors' - ким биздин сайтты орното алат (анти-кликджекинг).
'base-uri' - алмаштырууга тыюу салуу '<base>'.
'form-action' - формаларды бузууга уруксат берилген.
'upgrade-insecure-requests', 'block-all-mixed-content' - HTTP/HTTPS аралашмасы менен күрөшүү.
'report-uri '/' report-to' - бузууларды кайда жөнөтүү керек.

3. 2 Nonce и hash

Nonce-мамиле: ар бир HTTP-жооп крипто-slucked' nonce' түзүү, inline-скрипттерге кошуу '<script nonce =""...>' жана 'script-src' nonce-... ".
Хэш-ыкма: Туруктуу хэш мазмуну. статикалык HTML үчүн ылайыктуу, динамикасы менен ыңгайсыз.
'strict-dynamic': "ишенимдүү" скрипт менен жүктөлгөн скрипттерге гана ишенүү (nonce/hash менен). Динамикалык жүктөөдө максаттуу домендерди тизмектөө зарылдыгын алып салат, бирок заманбап браузерлерди талап кылат.

3. 3 Тыюу 'unsafe-'

'unsafe-inline', 'unsafe-eval' алыс. Эгерде фреймворк eval (мисалы, гиганттагы source-map) талап кылса, анда гана гиганттык.
Стилдер үчүн - 'nonce' же 'hash' колдонуңуз, мүмкүн болсо, интернетсиз.

3. 4 Катуу CSP үлгүсү (күжүрмөн)


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
💡 Убактылуу 'Content-Security-Policy-Report-Only' деп иштеп, отчетторду чогултуп, оңдоп, анан enforcing режимине которсо болот.

4) Trusted Types (DOM-XSS)

'Content-Security-Policy: require-trusted-types-for' script 'директивасын киргизиңиз; trusted-types app default`.
Коддо бирдиктүү саясат түзүү ('window. trustedTypes. createPolicy('app', { createHTML() {... } })`).
Кооптуу дайындоолорго тыюу салуу ('element. innerHTML =...`) без Trusted Types.
Frameworks менен бириктирүү (React/Angular/Vue): Коопсуз API көрсөтүү колдонуу, коркунучтуу dangerouslySetInnerHTML качуу.

5) SRI (CDN бүтүндүгү)

тышкы' <script> '/' <link> 'integrity =" sha256- "... crossorigin =" anonymous"'.
SRI CSP ордуна эмес, толуктайт. CDN версиясын жаңыртканда - хэштерди жаңыртуу.

6) Кликджекинг жана кадр

Заманбап ыкма - 'frame-ancestors' (эскирген 'X-Frame-Options' ордуна).

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.