Web ve tarayıcı güvenlik modeli: HTTP, köken, çerez, CORS ve CSP
Bir web isteğini satır satır okur, tarayıcının kökenleri birbirinden nasıl ayırdığını, çerezlerin ve CORS ile CSP’nin neyi koruduğunu kendi lab uygulamanda görürsün.
Seviye 101 · 20 ders · 17 pratik lab
Dersler
HTTP’yi okumak
- İstemci, sunucu ve aradaki yol: bir sayfa nasıl gelir
- URL’nin parçaları: şema, ana makine, yol, sorgu ve parça
- HTTP isteğinin anatomisi: istek satırı, başlıklar ve gövde
- HTTP yöntemleri ve durum kodları güvenlik açısından ne anlatır
- Kısa görev: tarayıcının geliştirici araçlarında beş isteği çözümle
Durum, veri ve güven
- HTTP durumsuzdur: çerezler ve oturumlar neden var
- Güvenlik açısından önemli başlıklar: Host, Referer, Origin, User-Agent
- Form gönderimi ve gövde biçimleri: urlencoded, multipart, JSON
- Kodlamalar: URL, HTML varlıkları, Base64 ve Unicode
- Güven sınırları: kullanıcıdan gelen her şey girdidir
- Kısa görev: bir giriş formunun gönderdiği isteği curl ile yeniden üret
Köken ve çerez
- Köken nedir: şema, ana makine ve port üçlüsü
- Aynı köken politikası: neyi engeller, neyi engellemez
- Site ve köken farkı: alt alan adları neden önemli
- Çerezin anatomisi ve bayrakları: Domain, Path, Secure, HttpOnly, SameSite
- localStorage, sessionStorage ve IndexedDB: kim okuyabilir
- Kısa görev: on URL çiftinin aynı kökenden olup olmadığına karar ver ve çerezlerin nereye gittiğini göster
Kontrollü paylaşım
- CORS ve ön kontrol istekleri: bir kökenin başka bir kökene izin vermesi
- İçerik güvenliği politikasına (CSP) giriş: hangi betik çalışabilir
- Bitirme görevi: lab uygulamasının tarayıcı güvenlik ayarlarını incele ve raporla
Pratik lablar
- Bu giriş isteğinde parolanın nereye gittiğini bul: Lab uygulamasının giriş isteğini satır satır oku, parolanın gövdede mi sorguda mı taşındığını göster ve sorguda taşınıyorsa formu düzelt.
- Durum kodları ne anlatıyor: beş yanıtı yorumla: Lab uygulamasından gelen beş yanıtın durum kodunu ve başlıklarını yorumla, yanlış kodla dönen hata sayfasını bul ve doğru koda çevir.
- Gövde biçimleri: aynı formu üç biçimde gönder: Bir profil formunu urlencoded, multipart ve JSON olarak curl ile yeniden üret ve sunucunun beklenmeyen biçimi neden kabul ettiğini bulup içerik türü kontrolü ekle.
- Kodlama katmanlarını çöz: iç içe kodlanmış parametre: URL, Base64 ve HTML varlığıyla iç içe kodlanmış bir parametreyi çöz, sunucunun hangi katmanda doğruladığını bul ve doğrulamayı son çözümden sonraya taşı.
- Aynı köken mi: on adres çiftini sınıflandır: Lab ortamındaki on adres çiftini şema, ana makine ve porta göre sınıflandır ve hangi çiftlerin birbirinin verisini okuyabileceğini kanıtla.
- Eksik bayraklı oturum çerezi: Lab uygulamasının oturum çerezinde eksik Secure, HttpOnly ve SameSite bayraklarını bul, sunucu ayarında düzelt ve tarayıcıda yeni hâlini göster.
- Alt alan adına sızan çerez: Domain özniteliği gereğinden geniş ayarlanmış bir çerezin hangi alt alan adlarına gittiğini kanıtla, kapsamı daralt ve çerezi __Host- önekine taşı.
- localStorage'daki belirteci kim okuyabilir: Belirtecini localStorage'da tutan bir sayfada aynı kökende çalışan betiklerin belirtece eriştiğini göster ve belirteci HttpOnly çereze taşıyan değişikliği yap.
- Her kökene izin veren CORS yanıtı: Lab API'sinin her kökene izin verdiği yanıtı bul, izin listesini yalnızca kendi ön yüz kökenine daralt ve ikinci kökenden isteğin reddedildiğini göster.
- Ön kontrol isteği neden başarısız: Meşru ön yüzün PUT isteği ön kontrolde takılıyor; eksik izinli yöntem ve başlığı bul, en dar CORS ayarıyla düzelt.
- Kökeni yansıtan ve kimlik bilgisine izin veren API: Origin başlığını aynen geri yansıtan ve kimlik bilgisine izin veren yapılandırmayı ikinci lab kökeninden kanıtla, sabit izin listesiyle kapat.
- null kökene güvenen CORS ayarı: null kökenine izin veren bir uç noktanın neden tehlikeli olduğunu çerçeve içi bir sayfayla göster, ayarı düzelt ve reddedilen istekleri günlüğe yazdır.
- CSP başlığını oku: hangi betik çalışır: Lab sayfasının CSP başlığını oku, beş betik kaynağından hangilerinin çalışacağını tahmin et ve tarayıcı konsoluyla doğrula.
- CSP'si olmayan sayfaya ilk politika: CSP'si olmayan bir yardım sayfası için yalnızca kendi kökenine izin veren bir politika yaz ve sayfanın bozulmadığını göster.
- Rapor modunda CSP ihlallerini topla: Bir politikayı rapor modunda devreye al, gelen ihlal raporlarından meşru kaynakları ayıkla ve politikayı buna göre güncelle.
- unsafe-inline'ı kaldır, sayfayı çalışır tut: unsafe-inline içeren politikadan bu ifadeyi kaldır, satır içi betikleri dış dosyaya taşı ve sayfanın tüm işlevlerinin çalıştığını göster.
- Tarayıcı güvenlik ayarları denetimi: üç sayfa: Lab uygulamasının üç sayfasında çerez, CORS ve CSP ayarlarını karşılaştır, en zayıf sayfayı düzelt ve önce-sonra kanıtı çıkar.
Kurs hakkında
Bir web isteğini satır satır okur, tarayıcının kökenleri birbirinden nasıl ayırdığını, çerezlerin ve CORS ile CSP’nin neyi koruduğunu kendi lab uygulamanda görürsün.
Ne öğreneceksin
- HTTP’yi okumak
- Durum, veri ve güven
- Köken ve çerez
- Kontrollü paylaşım
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux masaüstünde geçer; araçlar pencereli arayüzleriyle hazırdır. Kurulum gerekmez, bilgisayar ekranı önerilir.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.