Dile göre güvenli kod incelemesi: Java, C# ve Go
Java, C# ve Go’ya özgü tehlikeli kalıpları, Spring, ASP.NET Core ve Go HTTP katmanlarının yapılandırma hatalarını tanır, açıkları kodda düzeltir ve bu diller için CodeQL sorguları yazarsın.
Seviye 401 · 15 ders · 13 pratik lab
Dersler
Java
- Java’da tehlikeli kalıplar: Runtime.exec, ObjectInputStream ve XML fabrikaları
- Spring Security yapılandırma hataları
- JPA ve Hibernate’te sorgu güvenliği
- Kısa görev: bir Spring Boot uygulamasında dört açığı bul ve düzelt
C# ve .NET
- .NET’te tehlikeli kalıplar: BinaryFormatter, Process.Start ve XmlDocument
- ASP.NET Core’da kimlik, yetki ilkeleri ve sahtecilik koruması
- Razor kaçışı ve Entity Framework ham sorguları
- Kısa görev: bir ASP.NET Core uygulamasında dört açığı bul ve düzelt
Go
- Go’da tehlikeli kalıplar: exec.Command, text/template ve filepath.Join
- net/http ve çerçevelerde ara katman ve yetki hataları
- Go’da eşzamanlılık hataları ve yarış dedektörü
- Kısa görev: bir Go servisinde dört açığı bul ve düzelt
Kural ve süreç
- Bu diller için CodeQL sorguları yazmak
- Maven, NuGet ve Go modül bağımlılık denetimi
- Bitirme görevi: Java, C# ve Go servislerinden oluşan bir sistemi incele ve düzelt
Pratik lablar
- Spring Security'de herkese açık yol: Güvenlik yapılandırmasında yanlışlıkla herkese açılmış yönetim yolunu bul ve kuralı düzelt.
- JPA'da birleştirilen JPQL: Dize birleştirmeyle kurulan JPQL sorgusunu bul ve adlandırılmış parametreye çevir.
- Java XML fabrikası ve ObjectInputStream: Spring Boot servisinde güvensiz XML fabrikasını ve nesne okumayı bul, güvenli ayarlarla düzelt ve test et.
- Spring Boot servisinde dört açık: Spring Boot servisindeki dört açığı kod okuyarak bul, düzelt ve derleme ile testleri geçir.
- Razor'da ham HTML çıktısı: Kullanıcı verisini ham HTML olarak yazan Razor satırını bul ve kodlanmış çıktıya çevir.
- Entity Framework'te ham sorgu: Dize ekleme ile kurulan ham sorguyu bul ve parametreli biçime çevir.
- ASP.NET Core'da eksik yetki ilkesi: Yetki özniteliği eksik denetleyici eylemini bul, ilke ekle ve sahtecilik korumasını doğrula.
- ASP.NET Core servisinde dört açık: ASP.NET Core servisindeki dört açığı bul, düzelt ve derleme ile testleri geçir.
- filepath.Join yol geçişini önlemez: Go servisinde filepath.Join'a güvenen indirme işlevindeki yol geçişini bul ve kök kontrolü ekle.
- text/template ile HTML üretimi: HTML üretirken text/template kullanan kodu bul ve html/template'e geçir.
- Go'da veri yarışı: Yarış dedektörüyle paylaşılan haritadaki veri yarışını bul ve eşzamanlamayla düzelt.
- CodeQL ile üç dilde sorgu: Java, C# ve Go servislerinde komut çalıştırmaya giden kullanıcı girdisini bulan CodeQL sorgularını çalıştır ve sonuçları doğrula.
- Maven, NuGet ve Go modül denetimi: Üç servisin bağımlılıklarını denetle, etkilenen sürümleri yükselt ve derlemelerin geçtiğini göster.
Kurs hakkında
Java, C# ve Go’ya özgü tehlikeli kalıpları, Spring, ASP.NET Core ve Go HTTP katmanlarının yapılandırma hatalarını tanır, açıkları kodda düzeltir ve bu diller için CodeQL sorguları yazarsın.
Ne öğreneceksin
- Java
- C# ve .NET
- Go
- Kural ve süreç
Ön koşullar
Aynı yolun 301 düzeyine kadar olan konularını uygulamış olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 401 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.