CodeBlanks Logo Icon CodeBlanks

Secure coding

Secure coding prensiplerini öğrenirsin.

Secure coding prensipleri

Secure coding, güvenliği kod yazarken düşünmektir; sonradan eklemek değil. Temel prensipler: girdiyi doğrula, çıktıyı kaçışla, en az yetki ver, hata mesajını sızdırma.

React Native'de kullanıcı girdisi TextInput'tan gelir. Bu girdiyi kullanmadan önce doğrula: e-posta biçimi doğru mu, uzunluk sınırı aşılıyor mu? API'ye göndermeden önce kaçışla. Hata mesajlarında iç sunucu yollarını verme; genel mesaj göster. Hassas veriyi console.log'a yazma; üretimde log kapalı olsa bile risk yaratır. Bu prensipler, saldırı yüzeyini küçültür.

Girdi doğrulama örneği

Bir e-posta girdisi doğrulamak için biçim kontrolü yapılır. Basit bir yöntem: const emailOk = /[^@]+@[^@]+\.[^@]+/.test(email). Bu, e-postada bir @ ve bir nokta var mı bakar.

Daha katı doğrulama için bir kütüphane kullanılır; ama temel biçim kontrolü çoğu saldırıyı engeller. Uzunluk da sınırlandırılır: if (email.length > 200) return;. Bu, aşırı uzun girdiyle yapılan buffer saldırılarını zorlaştırır. Doğrulama hem istemcide hem sunucuda yapılır; istemci atlanabilir, sunucu atlanamaz.

Uygulama Girdi doğrulama fonksiyonu yaz

Bir validateEmail fonksiyonu yaz. Bir email parametresi alsın. /.+@.+\..+/ düzenli ifadesiyle test etsin ve boolean döndürsün.

Başlangıç kodu

App.js
// validateEmail fonksiyonunu buraya ekle

Örnek çözüm

App.js
function validateEmail(email) {
  return /.+@.+\..+/.test(email);
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kullanıcı girdisi ne yapılmalı?

App.js
<TextInput value={text} />
  • Doğrulanmalı Doğru cevap
  • Doğrudan veritabanına yazılmalı
  • Konsola yazılmalı
  • Yoksayılmalı

Açıklama: Girdi kullanılmadan önce doğrulanmalı.

2 Prensibi rolüne eşle

Kavram Anlamı
girdi doğrula Biçim ve uzunluk
çıktı kaçışla Enjeksiyon engeller
en az yetki Sınırlı erişim
hata gizle İç yolu sızdırma

3 E-posta doğrulama

Soru
const emailOk = /[^@]+____@[^@]+\.[^@]+/.test(email);
Cevap
const emailOk = /[^@]+@@[^@]+\.[^@]+/.test(email);

Açıklama: @ e-posta adresinin ayracıdır.

Uzman bölümündeki tüm dersler