Merhaba, bug en sade tanımı ile sistemde oluşan beklenmedik durumlardır. Bu durumlar hem kullanıcı hemde sistemi yapan/tasaryalan kişi tarafından beklenmediktir. Genel itibari ile yazılımcı kullandığı programlama dilinin kütüphane ve fonksiyon gibi işlevsel yapıları, hedeflediği işletim sisteminin mimiari ve çalışma yapısını eksik bildiği için, programı tasarlarken mantıksal hatalar yaptığı için ya da kullanıcıdan aldığı girdilere güvendiği için gerçekleşir.
Örneğin alışveriş sitesine girdiniz ya da alışveriş uygulamasını açtınız bir şeyler satın almak istiyorsunuz. Sepetinize ürünleri eklediniz ve sepetinize geçtiğinizde aldığınız ürünlerin 100 lira tuttuğunuz gördünüz. Bu senaryo 100 lira olarak görünen değerin yanında da bahşiş için bir bölüm bulunduğunu ve buraya girdiğiniz rakam kadar bahşiş bıraktığınızı düşünün. Örneğin ürünleriniz 100 lira tuttu ve 10 lira da bahşiş vermek için girdi alanına 10 lira yazıp ödemenizi yaptınız. Toplamda kredi kartınızdan 110 lira harcanmış olur. Peki ya yanlışlıkla bahşiş bölümüne 10 lira değilde -10 lira girerseniz ne olur? 100 liralık ödemenizin yanına -10 lira bahşiş girdiniz. Toplamda 90 lira ödeyeceksiniz! İşte bu bir bug örneğidir. Yazılımcının düşünemediği bir senaryo oluşmuştur. Sizde bu durumu tamamen rastgele şekilde tespit ettiniz. Bu mantıksal bir bug olarak değerlendirilebilir. Bu tür hatalar "Bug Bounty" programlarında sık sık tespit edilir. Ve büyük şirketler bu tür tespitler için yüksek miktarda ücret ödeyebilirler.
Bazı bug türleri ise sistemde yıkıcı etkilere sebep olabilir. Örneğin "Ayak Topu" isimli bir Android/Apple uygulaması olsun. Karşılıklı gol atılan 2 kişilik bir oyun olduğunu düşünelim. Bu oyunda bir kullanıcı adı girmeniz gerekiyor. Normalde "kral_golcu" gibi bir kullanıcı ismi girebilirsiniz. Ya da "0xA" gibi bir değer girdiğinizi düşünün bu ifade hex bir ifadedir ve karşılığı ise "Backspace" tuşudur. Tüm sistemi çıkmaza sokabilirsiniz ya da isim kısmınızda hiçbir şey yazmaz çünkü yazılımcı oyunu yaparken kodların içersinde, kullanıcının normal bir girdi gireceğini düşünmüş ona göre aksiyon almıştır.
Evrim ağacı içersinde basit bir bug örneği olarak görebileceğimiz bir resim paylaşacağım. Arka planda nasıl bir yazılım sisteminin ve kodlarının bilinmediği için tahminsel olarak bazı yerlerde Türkçe karakter gösterme sorunu yaşanıyor.
Kaynaklar
- Yazar Yok. Hackerone. (1 Ağustos 2020). Alındığı Tarih: 1 Ağustos 2020. Alındığı Yer: Bağlantı | Arşiv Bağlantısı
- Yazar Yok. Wikipedia Race Condition. (1 Ağustos 2020). Alındığı Tarih: 1 Ağustos 2020. Alındığı Yer: Bağlantı | Arşiv Bağlantısı
- Yazar Yok. Github. (1 Ağustos 2020). Alındığı Tarih: 1 Ağustos 2020. Alındığı Yer: Bağlantı | Arşiv Bağlantısı