Python ile web ve API denetimi otomasyonu
Kendi laboratuvar uygulamana karşı oturum, belirteç ve API isteklerini Python’la otomatikleştirir, tekrarlanabilir güvenlik kontrolleri yazarsın.
Seviye 201 · 15 ders · 12 pratik lab
Dersler
İstemciyi tanımak
- httpx ve requests: senkron ve asenkron istemci
- Başlıklar, yönlendirmeler ve zaman aşımı
- İstekleri yerel vekil sunucudan geçirip izlemek
- Kısa görev: sitenin güvenlik başlıklarını denetle
Oturum ve kimlik
- Form girişi ve CSRF belirteciyle oturum açmak
- Bearer belirteçleri ve JWT içeriğini okumak
- API anahtarı ve OAuth istemci akışı
- Oturumun gerçekten sona erip ermediğini sınamak
- Kısa görev: çıkıştan sonra eski belirtecin işe yarayıp yaramadığını kanıtla
API kontrolleri
- OpenAPI tanımından tüm uç noktaları çıkarmak
- Rol bazlı erişim tablosunu otomatik sınamak
- Hız sınırının çalışıp çalışmadığını ölçmek
- Kısa görev: başka kullanıcının kaydına erişilebilen uç noktayı bul
Kapanış
- Kontrolleri pytest testlerine dönüştürmek
- Bitirme görevi: laboratuvar API’si için güvenlik regresyon paketi
Pratik lablar
- Eksik güvenlik başlıkları: Lab uygulamasının sayfalarında HSTS, CSP, X-Content-Type-Options ve çerez bayraklarını denetleyen bir betik yaz ve eksikleri sayfa bazında listele.
- Yönlendirme zinciri nereye gidiyor: Lab uygulamasındaki giriş sonrası yönlendirmeleri izleyip HTTP’ye düşen veya dış alana giden adımları bulan, zaman aşımlı bir httpx betiği yaz.
- Vekil sunucuda görünmeyen istekler: Yerel vekil sunucu ayarlanmasına rağmen bazı istekleri doğrudan gönderen asenkron istemciyi düzelt ve tüm isteklerin vekil kaydında göründüğünü kanıtla.
- CSRF belirteçli form girişi: Lab uygulamasının giriş sayfasından CSRF belirtecini alıp oturum açan ve profil sayfasına eriştiğini gösteren bir requests betiği yaz.
- JWT içinde neler taşınıyor: Lab API’sinden alınan JWT’nin başlık ve içerik alanlarını çözüp süre, rol ve gereksiz kişisel veri açısından değerlendiren kısa bir rapor üret.
- Çıkıştan sonra hâlâ geçerli belirteç: Yetkili test kapsamında lab API’sinde çıkış, parola değişikliği ve süre dolumundan sonra eski belirtecin kabul edilip edilmediğini sınayan bir betik yaz ve her durum için kanıt kaydet.
- OpenAPI’den uç nokta listesi: Lab API’sinin OpenAPI tanımından tüm uç noktaları yöntem ve kimlik doğrulama gereksinimiyle tablo halinde çıkaran bir betik yaz.
- Hız sınırı gerçekten çalışıyor mu: Lab API’sinin giriş uç noktasına kontrollü sayıda istek gönderip hız sınırının kaçıncı istekte devreye girdiğini ve sıfırlanma süresini ölç.
- Başka kullanıcının kaydı açılıyor: İki test hesabıyla rol tablosunu otomatik sınayan bir betik yaz, kendi lab API’nde başka kullanıcının kaydını döndüren uç noktayı bul ve kanıtını kaydet.
- Kontrolleri pytest’e taşı: Daha önce yazılmış başlık ve oturum kontrollerini pytest testlerine dönüştür ve lab API’sine karşı tek komutla çalıştırıp sonucu göster.
- Rol matrisi için parametreli testler: Pinecrest Bank lab API’sinin rol-uç nokta izin tablosunu pytest parametreleriyle test et ve tablodan sapan iki uç noktayı başarısız test olarak göster.
- Bazen geçen, bazen kalan testler: Paylaşılan test verisi ve sıra bağımlılığı yüzünden kararsız çalışan güvenlik testlerini her testin kendi hesabını kurup temizleyeceği şekilde düzelt ve art arda beş çalıştırmada aynı sonucu al.
Kurs hakkında
Kendi laboratuvar uygulamana karşı oturum, belirteç ve API isteklerini Python’la otomatikleştirir, tekrarlanabilir güvenlik kontrolleri yazarsın.
Ne öğreneceksin
- İstemciyi tanımak
- Oturum ve kimlik
- API kontrolleri
- Kapanış
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 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.