Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Model çıktısını güvenilmez veri saymak
Bu modülün önceki dersleri kodun kendi hatalarına baktı. Şimdi kodun bir dil modeliyle konuştuğu yeni bir yüzeye geçiyorsun. Bir dil modeli, verdiğin istemi okur ve bir metin üretir. Üretilen metin çoğu zaman yararlıdır, ama üretim süreci olasılıksaldır ve dışarıdan etkilenebilir. Model, eğitim verisinden öğrendiği kalıplara göre en olası kelimeyi seçer; bu seçim istemin içeriğine, hatta istemin içine sızmış bir metne göre değişebilir. Bu yüzden model çıktısı, tıpkı bir kullanıcının form alanına yazdığı metin gibi, güvenilmeyen bir girdi sayılır. Kodun geri kalanı bu çıktıyı hiçbir zaman körü körüne işlemez. Bu farkı unutmak, klasik bir güvenlik hatasını yeni bir kılıkla geri getirir.
Kural basittir: model çıktısını nerede kullanırsan, o bağlamın güvenlik kuralını uygula. Çıktıyı bir web sayfasına basıyorsan HTML kaçışı uygula, aksi hâlde saklı bir XSS açarsın. Çıktıyı bir veritabanı sorgusuna katıyorsan parametreli sorgu kullan, asla metni birleştirme. Çıktıyı bir kabuk komutuna veriyorsan asla doğrudan çalıştırma. Çıktıyı doğrudan koda çevirip eval ile işletmek en tehlikeli kalıptır; model neyi üretirse üretsin, o kod sınırsız yetkiyle çalışır. Kural, çıktının biçimi ne kadar düzenli görünürse görünsün değişmez; düzenli görünen bir metin bile içine gömülü bir komut taşıyabilir.