Platform Genel Bakışı
SecureCodingHub, geliştiricilere güvenlik açıklarını tanımlama ve düzeltme becerilerini uygulamalı pratikle öğreten interaktif bir güvenli kodlama eğitim platformudur. Katalog, şu anda yayında olan dört OWASP top-10 ailesi (Web, API, Mobil, İstemci Tarafı) genelinde 200'den fazla konuyu kapsar ve öğrenci deneyimi sekiz arayüz dilinde sunulur.
SecureCodingHub nedir?
SecureCodingHub, gerçek dünyada güvenli kodlama becerileri inşa etmek için tasarlanmış iki eğitim modu sunar:
Pratik Modu
Geliştiricilerin açıklı kod bloklarını bulduğu ve doğru düzeltmeyi seçtiği kod inceleme görevleri. Yedi backend dili, altı frontend yığını (React, Vue, Angular — her biri TypeScript ve JavaScript ile) ve iki mobil platformda kullanılabilir.
Öğrenme Modu
Simüle edilmiş bir tarayıcı ortamında adım adım interaktif saldırı senaryoları. Geliştiriciler, açıkların nasıl istismar edildiğini anlamak için gerçek dünya saldırı zincirlerini birebir takip eder.
Desteklenen OWASP Kategorileri
Eğitim içeriği, dört ana OWASP güvenlik standardı üzerinde düzenlenmiştir:
| Kategori | Konular | Açıklama |
|---|---|---|
| Web Top 10 | 10 modül, ~88 konu | SQL Injection, XSS, CSRF, Broken Access Control ve daha fazlası |
| API Top 10 | 10 modül, ~45 konu | BOLA, Broken Authentication, Mass Assignment, SSRF ve daha fazlası |
| Mobile Top 10 | 10 modül, ~47 konu | Insecure Storage, WebView Injection, Certificate Pinning ve daha fazlası |
| Client-Side Top 10 | 10 modül, ~46 konu | DOM XSS, Prototype Pollution, Local Storage Secrets ve daha fazlası |
Desteklenen Diller ve Framework'ler
Backend Dilleri
Frontend Framework'leri
Mobil Platformlar
Kullanıcı Rolleri
Her kurum içinde kullanıcılar iki roldan birine sahiptir:
| Rol | Erişim |
|---|---|
| Kurum Yöneticisi | Kullanıcıları, ekipleri, atamaları, özel kursları, SSO, SCIM, SCORM, API anahtarlarını, webhook'ları, denetim günlüğünü, uyumluluk panellerini ve kurum ayarlarını yönetir. |
| Öğrenci | Pratik görevlerini ve öğrenme senaryolarını tamamlar, kişisel ilerlemesini takip eder ve XP kazanır. |
Tam ayrıntı için bkz. Roller ve İzinler.
Arayüz Dilleri
Öğrenci ve yönetici arayüzü sekiz dile çevrilmiştir. Kullanıcılar arayüz dilini üst çubuktan seçer; seçim oturumlar arasında korunur.
Eğitim içeriği çevirileri ayrı bir hızda yayına alınmaktadır — görev senaryoları ve metinler, yerelleştirildikçe aynı dil setine çevrilir.
Kontrol Paneline genel bakış
İlk girişte karşılaştığınız yönetici kontrol paneli aşağıda görülebilir:
İki Mod Birbirini Nasıl Tamamlar
Pratik ve Öğrenme, aynı egzersizin iki biçimi değildir. Pratik Modu, kod düzeyinde örüntü tanımayı hedefler: birkaç satır koda bakıp güvensiz yapıyı tespit edip güvenli olanı seçebilir misiniz. Hızlıdır, tekrar edilebilir ve geniş bir zafiyet yelpazesinde kas hafızası inşa etmek için en iyisidir. Python ve TypeScript'te kırk SQL injection varyantı görmüş bir geliştirici, gerçek bir pull request'teki bir sonraki örneği düşünmeden yakalar. İki aşamalı akış için bkz. Pratik Modu.
Öğrenme Modu, Pratik'in kapsayamadığı kısmı kapsar. Bir kod inceleme görevi size bir snippet gösterir, ancak gerçek açıklar iki dosya, iki servis veya iki güven katmanı arasındaki boşlukta yaşar. Öğrenme senaryoları sizi simüle edilmiş bir uygulamanın karşısına oturtur ve saldırganın yolunu adım adım gösterir: keşif, istismar, etki, önleme. İşte bu bağlam, kontrol listesindeki bir önlemi tasarım içgüdüsüne dönüştürür. Genişlik için Pratik'i, derinlik için Öğrenme'yi kullanın. Yeni işe alınanlar genellikle her kategoride bir Öğrenme senaryosuyla başlar ve ardından o kategoride Pratik yapar. Senaryo yapısı için bkz. Öğrenme Modu.
Platform Neden Zafiyet Sınıfları Etrafında Yapılandırıldı
Katalog programlama diline göre değil OWASP kategorisi ve zafiyet türüne göre düzenlenmiştir. Bu bilinçli bir tercihtir. Zafiyetler dilden bağımsız kavramlardır: SQL injection, kullanıcı girdisinin bir sorgu planına nasıl ulaştığıyla ilgili bir sorudur — sorgunun Python, Java veya Go ile yazılmış olması fark etmez. Dile göre düzenlenmiş bir platform bilgiyi siloya hapseder. Python geliştiricisi XSS'i kendi dilinde öğrenirken, aynı yapının Vue, Angular ve React'te farklı kaçış kurallarıyla ortaya çıktığını asla görmez. Sınıfa göre düzenlemek bu boşluğu kapatır.
Dile özgü kısmı altta teknoloji tercihi sistemi yönetir. Teknoloji Tercihleri üzerinden teknoloji yığınınızı bir kez seçersiniz ve her görev akıcı okuduğunuz bir söz dizimine göre yüklenir. Altta ise aynı zafiyet sınıfı, desteklenen tüm yığınlar genelinde aynı kavramsal çerçeveyle öğretilir. Daha sonra ekip değiştirdiğinizde veya yeni bir dil öğrendiğinizde kavramlar hemen aktarılır çünkü hiçbir zaman tek bir söz dizimine bağlanmamıştır.