Güvenlik ve CSP Politikaları
1) Neden güvenlik politikalarına ihtiyacımız var?
Modern frontend ve API birçok kaynağa bağlıdır (CDN, analitik, PSP, 3DS, sohbetler). Zorlu politikalar olmadan, XSS, tıklama, veri sızıntıları ve oturum kaçırma riskleri artar. Güvenlik ilkeleri, tarayıcıyı allow-list modeline taşıyarak varsayılan olarak izin verilenleri sınırlar.
2) Temel sütunlar
CSP (İçerik Güvenliği Politikası), izin verilen JS/CSS/medya kaynaklarının ve davranışlarının merkezi bir "menüsü'dir.
Güvenilir Türler - DOM-XSS'ye karşı tip düzeyinde koruma.
SRI (Subresource Integrity) - komut dosyalarının/stillerin bütünlüğünü kontrol edin.
COOP/COEP/CORP - kaynaklar arasında bağlamların ve kaynakların katı izolasyonu.
Fetch Metadata ('Sec-Fetch-'), siteler arası istekleri filtrelemek için kullanılan bir sunucu çözümüdür.
CORS - etki alanları arası API erişim politikası.
Klasik başlıklar: HSTS, 'X-Frame-Options'/' frame-ancestors', 'Referrer-Policy', 'Permissions-Policy', SameSite-cookies.
3) CSP: Temel ve İlkeler
3. 1 Direktifler (anahtar)
'default-src' - diğer direktifler için varsayılan.
'script-src' - JS kaynakları, nonce/hash, 'strict-dynamic', 'report-sample'.
'style-src' - CSS kaynakları; 'güvenli olmayan satır içi'ni en aza indirin.
'img-src', 'font-src', 'media-src', 'object-src' (обычно 'none').
'connect-src' - ağ istekleri (XHR/fetch/WebSocket).
'frame-src'/' child-src' - üçüncü taraf çerçeveleri (PSP, 3DS).
'frame-ataları' - sitemizi kim gömebilir (anti-clickjacking).
'base-uri' - '<base>' yerine kullanılmasını yasaklar.
'form eylemi' - formların gönderilmesine izin verilen yerler.
'upgrade-insecure-requests', 'block-all-mixed-content' - HTTP/HTTPS karışımıyla mücadele.
'report-uri'/' report-to' - ihlallerin nereye gönderileceği.
3. 2 Nonce и karma
Nonce yaklaşımı: her HTTP yanıtı için bir kripto-rastgele 'nonce' oluşturun, satır içi komut dosyalarına '