Güvenli kodlama ilkeleri: Python ve JavaScript
Girdi doğrulama, çıktı kodlama, kimlik doğrulama ve yetkilendirme hatalarını gerçek kod örneklerinde bulur, Python ve JavaScript’te güvenli karşılıklarını yazarsın.
Seviye 201 · 19 ders · 15 pratik lab
Dersler
Girdi
- Hiçbir girdiye güvenmemek: girdi nereden gelir
- İzin listesiyle doğrulama
- Şemayla doğrulama: pydantic ve zod
- Dosya yollarını güvenle birleştirmek
- Kısa görev: bir API ucunun bütün girdilerini doğrula
Çıktı ve enjeksiyon
- Bağlama göre çıktı kodlama: HTML, öznitelik, URL
- Parametreli sorgu ve ORM tuzakları
- Kabuk komutu çalıştırmadan iş görmek
- Güvensiz serileştirmeden kaçınmak: pickle ve yaml
- Kısa görev: üç enjeksiyon hatasını düzelt ve testle kanıtla
Kimlik ve yetki
- Parola saklamak: argon2 ve bcrypt
- Oturum yönetimi: çerez bayrakları ve süre
- Her istekte yetki denetimi: nesne düzeyinde erişim
- CSRF ve CORS’u doğru ayarlamak
- Kısa görev: başkasının faturasını gösteren ucu düzelt
Hata, log ve kriptografi
- Hata yönetimi: kullanıcıya az, loga yeterli
- Güvenli loglama: kişisel veriyi ve gizli bilgiyi süzmek
- Kendi şifrelemeni yazmamak: kanıtlanmış kütüphaneler
- Bitirme görevi: küçük bir not uygulamasının güvenlik hatalarını bul ve düzelt
Pratik lablar
- Bir API ucunun aldığı tüm girdileri listele: Yol, sorgu, gövde, başlık ve çerezden gelen girdileri ve her birinin beklenen türünü yaz.
- İzin listesi ve şemayla girdiyi doğrula: Uç noktaya pydantic ya da zod şeması ekle, beklenmeyen alan ve aralık dışı değerlerin 400 döndürdüğünü testle göster.
- Dosya yolu birleştirmesini güvenli hale getir: İndirme ucunda kullanıcı girdisinin izinli dizinin dışına çıkabildiğini testle göster, yolu çözümleyip sınır denetimi ekle ve testin geçtiğini kanıtla.
- Çıktıyı bağlamına göre kodla: Kullanıcı adını HTML gövdesinde kaçışsız basan şablonu düzelt ve özel karakterlerin metin olarak göründüğünü doğrula.
- ORM’deki ham sorguyu ve kabuk çağrısını güvenli hale getir: Dizgi biçimlendirmeyle kurulan sorguyu parametreli yap, kabuk üzerinden çalışan komutu argüman listesiyle çağır.
- Üç enjeksiyon kusurunu düzelt ve testle kanıtla: SQL, komut ve güvensiz serileştirme kusurlarını gider, pickle ve yaml.load kullanımını güvenli karşılıklarıyla değiştir ve her biri için regresyon testi yaz.
- Oturum çerezinin bayraklarını denetle ve düzelt: Secure, HttpOnly ve SameSite bayraklarını ekle ve yanıt başlığında doğrula.
- Parola saklamayı argon2’ye geçir: Tuzsuz özetle saklanan parolaları argon2 ile saklayacak şekilde değiştir ve eski kullanıcıların ilk girişte yükseltildiğini göster.
- Başkasının faturasını gösteren ucu düzelt: Nesne düzeyi yetki denetimini ekle, CSRF ve CORS ayarlarını düzelt ve iki kullanıcıyla yazılmış testlerle kanıtla.
- Kullanıcıya dönen hata iletisini sadeleştir: Yığın izini yanıt yerine loga yaz ve kullanıcıya yalnızca bir hata kimliği döndür.
- Loglardan kişisel veri ve gizli bilgiyi süz: Log biçimlendiricisine parola, belirteç ve kart numarasını maskeleyen bir süzgeç ekle ve testle doğrula.
- El yapımı şifrelemeyi kanıtlanmış kitaplıkla değiştir: Sabit anahtarlı ve kendi yazılmış şifreleme işlevini kimlik doğrulamalı bir kitaplık çağrısına çevir, eski veriyi dönüştür ve kurcalanan verinin reddedildiğini göster.
- Not uygulamasının kodunda güvenlik açısından riskli yerleri işaretle: Girdi alan, sorgu çalıştıran ve dosyaya dokunan işlevleri listele.
- Not uygulamasındaki kusurları kanıtıyla raporla: Kendi labındaki uygulamada beş kusuru bul ve her biri için dosya, satır ve etkisini yaz.
- Not uygulamasının güvenlik kusurlarını bul ve düzelt: Girdi doğrulama, yetki, oturum ve loglama kusurlarını gider, her düzeltmeyi testle kanıtla ve değişiklik özetini yaz.
Kurs hakkında
Girdi doğrulama, çıktı kodlama, kimlik doğrulama ve yetkilendirme hatalarını gerçek kod örneklerinde bulur, Python ve JavaScript’te güvenli karşılıklarını yazarsın.
Ne öğreneceksin
- Girdi
- Çıktı ve enjeksiyon
- Kimlik ve yetki
- Hata, log ve kriptografi
Ö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.