0Pricing
Cyber Security Academy · Ders

Girdi Doğrulama ve Çıktı Kodlama

Tüm girdileri sunucu tarafında doğrulayın, çıktıları doğru bağlama göre kodlayın ve enjeksiyonu önleyin.

Girdi Doğrulama ve Çıktı Kodlama, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.

Girdi Doğrulaması Neden Önemlidir

Güvenilmeyen girdi kod olarak yorumlandığında SQL, komut, LDAP, XPath ve diğer enjeksiyon açıkları ortaya çıkar. Girdi doğrulama, verilerin işlenmeden, depolanmadan veya döndürülmeden önce beklenen türlere, uzunluklara ve biçimlere uygun olmasını sağlar.

İzin Listesi ve Ret Listesi Doğrulaması

İzin listesi (beyaz liste) doğrulaması, kabul edilebilir girdileri — IS olarak tanımlananları — belirler: yalnızca alfasayısal karakterler, yalnızca 1-100 aralığındaki tam sayılar, yalnızca geçerli e-posta biçimleri. Ret listesi (kara liste), bilinen kötü girdileri engellemeye çalışır ve her zaman eksik kalır. İzin listelerini tercih edin.

Sunucu Tarafında Doğrulama

İstemci tarafı doğrulama, kullanıcı deneyimini iyileştirir ancak hiçbir güvenlik sağlamaz — saldırganlar tarayıcı geliştirici araçlarını veya curl kullanarak bunu kolayca aşar. Her zaman sunucu tarafında doğrulama yapın. İstemci tarafı bir kolaylıktır; sunucu tarafı ise güvenlik denetimidir.

Farklı Veri Türleri için Girdi Doğrulama

Sayılar: türü ve aralığı kontrol edin. Dizeler: uzunluğu ve karakter kümesini kontrol edin. Tarihler: katı kurallarla ayrıştırın, aralığı kontrol edin. Dosyalar: uzantıyı AND sihirli baytları/MIME türünü kontrol edin — hiçbir zaman yalnızca uzantıya güvenmeyin. URL'ler: şema, ana makine ve yol bileşenlerini ayrıştırıp doğrulayın.

Parametreli Sorgular SQLi'yi Önler

Veritabanları için girdi doğrulamanın en önemli sonucu, kullanıcı girdisini SQL'e hiçbir zaman birleştirmemektir. Kullanıcı girdisinin sorgu dizesine eklenmek yerine parametre olarak aktarıldığı parametreli sorguları (hazırlanmış ifadeleri) kullanın.

// WRONG:
const q = "SELECT * FROM users WHERE name = '" + name + "'";
// RIGHT:
const q = "SELECT * FROM users WHERE name = $1";
await client.query(q, [name]);

Çıktı Kodlama Bağlamları

Aynı dize, bağlama göre farklı bir kodlama gerektirir. HTML gövdesi: HTML ile kodlayın (< > &). HTML özniteliği: HTML öznitelik kodlaması. JavaScript: JS kaçışlaması. URL parametresi: URL kodlaması (yüzde kodlaması). Yanlış kodlama kullanmak, saldırganların istismar edebileceği açıklar bırakır.

XSS'ye Karşı HTML Kodlaması

Kullanıcı verilerini hiçbir zaman doğrudan HTML'e eklemeyin. HTML'i otomatik olarak kaçışlayan bir şablon motoru veya kütüphane kullanın. React'te {value} güvenlidir; dangerouslySetInnerHTML kaçışlamayı devre dışı bırakır. Django'da, safe filtresini açıkça kullanmadığınız sürece şablonlar otomatik olarak kaçışlar.

JavaScript Bağlamı Kodlaması

Verileri JavaScript'e eklerken (örneğin kullanıcı verileriyle başlatılan bir değişkende) HTML kodlaması yeterli değildir. JSON kodlamasını kullanın: JSON.stringify(value). Bu, verilerin bir JS dizesi sabitinin bağlamından dışarı çıkmasını önler.

URL Kodlaması

URL'lere eklenen kullanıcı tarafından sağlanan veriler, encodeURIComponent() (JS) veya urllib.parse.quote() (Python) kullanılarak yüzde kodlamasıyla kodlanmalıdır. Kodlanmamış veriler URL yapısını değiştirebilir ve açık yönlendirmelere veya yol geçişine yol açabilir.

Derinlemesine Savunma Olarak İçerik Güvenlik Politikası

CSP, XSS'ye karşı ikinci bir savunma katmanı ekler. Tek kullanımlık değerler kullanan katı bir CSP, bir XSS yükü eklenmiş olsa bile satır içi komut dosyalarının çalıştırılmasını önler; çünkü tarayıcı, doğru tek kullanımlık değer özniteliği olmadan komut dosyalarını çalıştırmayı reddeder.

DOM Tabanlı XSS Önleme

DOM XSS, JavaScript saldırganın denetimindeki kaynaklardan (location.hash, document.URL, cookie) okuyup tehlikeli hedeflere (innerHTML, document.write, eval) yazdığında ortaya çıkar. Tarayıcı API'lerinden DOM hedeflerine giden tüm veri akışlarını statik analiz araçlarını kullanarak denetleyin.

Bilgi Kontrolü

İstemci tarafı doğrulama uygulanmış olsa bile sunucu tarafında girdi doğrulaması neden zorunludur?

Özet

Girdi doğrulama (izin listeleri, tür denetimi, uzunluk sınırları) ile bağlama duyarlı çıktı kodlaması (HTML, JS, URL, SQL parametreleştirmesi) enjeksiyon ve XSS saldırılarına karşı temel savunmalardır. Her ikisi de istisnasız olarak sunucu tarafında uygulanmalıdır.

Sıkça Sorulan Sorular

“Girdi Doğrulama ve Çıktı Kodlama” dersi ücretsiz mi?

Evet — “Girdi Doğrulama ve Çıktı Kodlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.

“Girdi Doğrulama ve Çıktı Kodlama” dersinde ne öğreneceğim?

Tüm girdileri sunucu tarafında doğrulayın, çıktıları doğru bağlama göre kodlayın ve enjeksiyonu önleyin. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Girdi Doğrulama ve Çıktı Kodlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Girdi Doğrulama ve Çıktı Kodlama
  2. Güvenli Bağımlılık Yönetimi
  3. OWASP ASVS: Uygulama Güvenliği Doğrulama Standardı
  4. Güvenli Kod İnceleme Teknikleri
← Cyber Security Academy Sayfasına Dön