DEFENSIVE CODING FOR C/C++ EĞİTİMİ

C ve C++ kodunu saldırıya hazırla

C ve C++ için savunmacı kodlama: bellek, girdi, hata yönetimi ve araçlar

Defensive Coding for C/C++ eğitimi; Savunmacı Kodlamaya Giriş, Girdi Doğrulama, Bellek ve String Güvenliği, Tamsayı ve Biçim Dizgisi Hataları ve daha fazlası. 2 gün, uygulamalı lab çalışmaları, Digital Vizyon Akademi katılım sertifikası.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Girdi ve Bellek Güvenliği ve Hata Yönetimi ve Doğrulama ekseninde ilerleyen uygulamalı program

Bu eğitim C ve C++ geliştiricilerine savunmacı kodlamanın uçtan uca çerçevesini sunar: güvenilmeyen girdinin doğrulanması, güvenli bellek ve string işleme, tamsayı hatalarının önlenmesi, kaynak yönetimi, hata dönüş kontrolü, assert kullanımı ve derleyici uyarıları. Valgrind, AddressSanitizer, cppcheck ve clang-tidy ile bulgular doğrulanır; zafiyetli kod parçaları adım adım güvenli sürüme dönüştürülür.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Girdi ve Bellek Güvenliği; 2. gün Hata Yönetimi ve Doğrulama.

Seviye

Orta Seviye — C ve C++ için savunmacı kodlama: bellek, girdi, hata yönetimi ve araçlar

Öğrenme Metodu

Her modülde kısa konu anlatımının ardından g++/clang++ ile derlenen kod egzersizleri yapılır; sanitizer ve derleyici uyarılarıyla hatalar birlikte ayıklanır.

Neden Bu Eğitim?

💻Kod Odaklı Öğrenme

Defensive Coding for C/C++ konuları her modülde yazıp çalıştırdığınız egzersizlerle pekiştirilir; teori kodla birlikte ilerler.

🐞Gerçek Hata Örnekleri

Sahada sık görülen hatalar bilinçli olarak üretilir, nedenleri incelenir ve kalıcı çözüm kalıpları gösterilir.

🎓Katılım Sertifikası

Eğitimi tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır.

Anahtar Konular

Defensive Coding for C/C++ eğitimiDefensive Coding for C/C++ kursudefensive coding Csavunmacı kodlamaC güvenli kodlamabuffer overflow önlemecppcheckValgrindDigital Vizyon Akademi
“Güvenli kod, en kötü girdiyi baştan varsayan koddur.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C++ Temelleri

Değişken, fonksiyon, sınıf ve işaretçi kavramlarına temel düzeyde aşinalık beklenir.

2
Derleyici Ortamı

g++ / clang++ veya MSVC ile C++17 standardında derleme yapabilen bir kurulum gerekir.

3
Komut Satırı

Derleme çıktılarını ve hata mesajlarını okuyabilecek kadar terminal alışkanlığı faydalıdır.

4
Editör veya IDE

VS Code, CLion ya da Visual Studio gibi bir geliştirme ortamı hazır olmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı girdi doğrulama ve güvenli bellek/string işleme kalıplarını C ve C++ kodunda uygular.
Modül 1
Savunmacı Kodlamaya Giriş
  • Saldırı yüzeyi ve güvenilmeyen girdi kaynakları
  • Hatalı varsayımların zafiyete dönüşmesi
  • Savunmacı kodlama ile hata ayıklama farkı
  • Gerçek dünya olayı: Heartbleed vaka analizi
  • Güvenli varsayılanlar ve en az ayrıcalık
  • Kodlama standartlarının rolü
Modül 2
Girdi Doğrulama
  • Allowlist ve denylist yaklaşımı
  • Uzunluk, aralık ve biçim kontrolü
  • strtol ile hata kontrollü sayı dönüşümü (errno)
  • Komut satırı, ortam ve dosya girdileri
  • Enjeksiyon: system() ve popen() riskleri
  • Kanonikleştirme ve yol doğrulama
Modül 3
Bellek ve String Güvenliği
  • gets, strcpy, strcat, sprintf zafiyetleri
  • strlcpy, snprintf ve strnlen kullanımı
  • malloc dönüş değeri kontrolü ve sıfırlama
  • free sonrası işaretçiyi NULL yapma
  • C++ std::string ve std::vector alternatifleri
  • Stack canary ve ASLR etkisi
Modül 4
Tamsayı ve Biçim Dizgisi Hataları
  • Signed overflow ve unsigned wrap sorunları
  • Bellek tahsisinde çarpma taşması
  • printf biçim dizgisi zafiyeti ve -Wformat-security
  • Daraltan dönüşüm uyarıları
  • Güvenli toplama ve çarpma yardımcıları
  • Birim testle sınır değer kontrolü
Günün hedefiKatılımcı hata dönüşlerini, kaynak yaşam döngüsünü ve analiz araçlarını güvenli geliştirme süreciyle birleştirir.
Modül 1
Hata Dönüşü ve Kaynak Yönetimi
  • Dönüş değeri kontrolünün ihmal edilmesi
  • errno ve perror kullanımı
  • goto cleanup kalıbı ile C'de kaynak temizliği
  • C++ RAII ve istisna ile yönetim
  • Dosya tanıtıcı ve bellek sızıntıları
  • Tutarlı hata politikası
Modül 2
assert ve Savunma Hatları
  • assert ve static_assert (C11 _Static_assert)
  • Sözleşme tarzı ön/son koşullar
  • NDEBUG ve üretimde assert davranışı
  • Katmanlı savunma (defense in depth)
  • Hata durumunda güvenli sonlandırma
  • Loglamada hassas veri sızdırmama
Modül 3
Araçlar ve Analiz
  • Wall -Wextra -Wshadow -Wconversion uyarıları
  • cppcheck ve clang-tidy kullanımı
  • Valgrind ve AddressSanitizer
  • UndefinedBehaviorSanitizer örnekleri
  • gdb ile çökme analizi (core dump)
  • Araç bulgularını önceliklendirme
Modül 4
Kapsamlı Uygulama
  • Zafiyetli ağ ayrıştırıcı kod incelemesi
  • Güvenli sürüme yeniden yazım
  • Birim ve fuzz testlerle doğrulama
  • CI hattına analiz adımı ekleme
  • Kod inceleme kontrol listesi
  • Takım için savunmacı kodlama rehberi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Saldırı Yüzeyi

Güvenilmeyen girdi noktalarını kodda belirleyebilirsiniz

✅
Girdi Doğrulama

Uzunluk, aralık ve biçim kontrollerini hata denetimli yazabilirsiniz

✅
Güvenli String

strcpy ailesi yerine sınır denetimli işlevleri kullanabilirsiniz

✅
Tamsayı Güvenliği

Taşma ve dönüşüm hatalarını önleyen aritmetik yazabilirsiniz

✅
Biçim Dizgisi

printf ailesi zafiyetlerini tanıyıp giderebilirsiniz

✅
Kaynak Yönetimi

goto cleanup ve RAII ile sızıntısız kaynak yönetimi kurabilirsiniz

✅
Analiz Araçları

Valgrind, ASan ve cppcheck bulgularını yorumlayabilirsiniz

✅
Kod İnceleme

Zafiyetli kodu inceleyip güvenli sürüme dönüştürebilirsiniz

Kimler İçin Uygundur?

  • C veya C++ ile uygulama
  • servis ya da sürücü geliştiren
  • kodunun güvenliğini sistematik biçimde artırmak isteyen yazılımcılar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
C veya C++ ile uygulama, servis ya da sürücü geliştiren ve kodunun güvenliğini sistematik biçimde artırmak isteyen yazılımcılar için uygundur.
Eğitimde hangi konular işlenir?
Program 2 gün sürer ve şu modülleri içerir: Savunmacı Kodlamaya Giriş, Girdi Doğrulama, Bellek ve String Güvenliği, Tamsayı ve Biçim Dizgisi Hataları, Hata Dönüşü ve Kaynak Yönetimi, assert ve Savunma Hatları, Araçlar ve Analiz, Kapsamlı Uygulama.
Eğitimde hem C hem C++ işleniyor mu?
Evet; kalıplar önce C'de, ardından C++ karşılıklarıyla gösterilir. Katılımcılar çoğunlukla kullandıkları dile odaklanabilir.
Heartbleed gibi gerçek vakalar işlenir mi?
Evet, açığın kod düzeyindeki nedeni ve savunmacı kodlamayla nasıl önlenebileceği incelenir; saldırı geliştirme öğretilmez.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir; programın dışında bir resmi sınav söz konusu değildir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Defensive Coding for C/C++ Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

C ve C++C++: Getting Started with Operator Overloading Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Getting Started with Operator Overloading Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

C++ operatör aşırı yükleme başlangıç eğitimi: üye ve global operatörler, friend, operator+, operator==, operator[], const doğruluğu ve C++20 spaceship operatörü

Detayları Gör →
C ve C++C++: Introduction to Graphics with SFML Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Introduction to Graphics with SFML Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

C++ ile SFML grafik programlamaya giriş: pencere, olay döngüsü, şekil, sprite, texture, metin, sf::Clock, sf::View ve temel animasyon uygulamaları.

Detayları Gör →
C ve C++C++: Overloading Arithmetic & Relational Operators Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Overloading Arithmetic & Relational Operators Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

C++ aritmetik ve ilişkisel operatör aşırı yükleme eğitimi: +=, ++, ==, <, C++20 <=> spaceship, strict weak ordering ve Fraction, Money, BigInt sınıfları.

Detayları Gör →
C ve C++C++: Stream Operators, Assignment Operators, & Copy-and-Swap Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Stream Operators, Assignment Operators, & Copy-and-Swap Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

C++ stream operatörleri, atama operatörü ve copy-and-swap eğitimi: operator<<, operator>>, kendine atama, istisna güvenliği, move atama ve Rule of 5.

Detayları Gör →
C ve C++C++: Using Class Templates Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Using Class Templates Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

C++ sınıf şablonları eğitimi: Stack ve Array konteyner yazımı, tam ve kısmi özelleştirme, CTAD, üye şablonlar, typename ve bağımlı isimler uygulamaları.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn