İstemci tarafı güvenlik: tarayıcıda çalışan kod
Kökenler arası iletişim, JavaScript’e özgü açıklar ve üçüncü taraf betikler yüzünden tarayıcıda doğan riskleri tanır; CORS, postMessage, prototip kirliliği ve SRI hatalarını kodda kapatırsın.
Seviye 301 · 15 ders · 13 pratik lab
Dersler
Kökenler arası iletişim
- CORS yanlış yapılandırması: yansıtılan köken ve kimlik bilgisi
- postMessage: köken kontrolü yapmayan mesaj dinleyicileri
- Açık yönlendirme ve oltalamaya katkısı
- WebSocket güvenliği: köken kontrolü ve kimlik doğrulama
- Kısa görev: lab uygulamasındaki CORS ve postMessage hatalarını kapat
JavaScript’e özgü açıklar
- Prototip kirliliği: nesne birleştirmenin karanlık yüzü
- DOM gölgeleme: HTML’in bir değişkeni ezmesi
- İstemci koduna gömülü anahtarlar ve gizli uç noktalar
- Tarayıcı depolamasında hassas veri
- Kısa görev: prototip kirliliğini kanıtla ve güvenli birleştirmeyle düzelt
Tedarik zinciri ve izleme
- Üçüncü taraf betikler: analitik, reklam ve sohbet araçları
- Alt kaynak bütünlüğü (SRI) ile CDN dosyalarını sabitlemek
- npm bağımlılıkları ve kilit dosyaları
- Hizmet çalışanları ve önbellek riskleri
- Bitirme görevi: tek sayfalı bir uygulamanın istemci tarafı güvenlik denetimini yap ve bulguları kapat
Pratik lablar
- Köken kontrolü yapmayan mesaj dinleyicisi: postMessage dinleyicisinin her kökenden mesaj kabul ettiğini kanıtla ve köken kontrolü ekle.
- Açık yönlendirme: next parametresi: Giriş sonrası next parametresinin dış adrese yönlendirdiğini kanıtla ve yalnızca göreli yollara izin ver.
- Köken kontrolü olmayan WebSocket: Başka kökenden açılan WebSocket bağlantısının oturum çereziyle kabul edildiğini göster ve Origin doğrulaması ekle.
- Ortak widget'ta * hedefli postMessage: Ortak iframe widget'ına hedef kökeni belirtmeden gönderilen hassas veriyi bul ve hedef kökeni sabitle.
- Regex ile doğrulanan köken: Kökeni gevşek bir düzenli ifadeyle doğrulayan CORS kodunun benzer alan adını kabul ettiğini lab'da göster ve tam eşleşmeye çevir.
- İstemci koduna gömülü API anahtarı: JavaScript paketine gömülü gizli anahtarı bul, sunucuya taşı ve anahtarı yenile.
- Prototip kirliliği: derin birleştirme: Ayar birleştirme işlevinin __proto__ anahtarını kabul ettiğini kanıtla ve güvenli birleştirmeyle düzelt.
- DOM gölgeleme ile ezilen yapılandırma: Kullanıcı HTML'inin genel bir yapılandırma değişkenini ezdiğini lab'da göster ve değişkeni DOM'dan bağımsız tanımla.
- Tarayıcı depolamasında hassas veri: localStorage ve IndexedDB'de saklanan hassas verileri bul, gereksizleri kaldır ve çıkışta temizliği ekle.
- CDN betiğine SRI ekle: Bütünlük özniteliği olmayan CDN betiklerini bul, SRI ekle ve değiştirilmiş dosyanın yüklenmediğini göster.
- Üçüncü taraf betik envanteri: Sayfaların yüklediği üçüncü taraf betikleri listele, gereksizleri kaldır ve kalanları CSP ile sınırla.
- Kilit dosyasıyla bağımlılık denetimi: npm denetiminde çıkan açıkları kilit dosyasında izle, gerçekten etkileneni yükselt ve derlemenin tekrar edilebilir olduğunu göster.
- Hizmet çalışanı ve bayat önbellek: Çıkıştan sonra kişisel sayfaların hizmet çalışanı önbelleğinden sunulduğunu göster ve önbellek kapsamını düzelt.
Kurs hakkında
Kökenler arası iletişim, JavaScript’e özgü açıklar ve üçüncü taraf betikler yüzünden tarayıcıda doğan riskleri tanır; CORS, postMessage, prototip kirliliği ve SRI hatalarını kodda kapatırsın.
Ne öğreneceksin
- Kökenler arası iletişim
- JavaScript’e özgü açıklar
- Tedarik zinciri ve izleme
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
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 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılı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.