Python 2.x Input() Fonksiyonundaki Güvenlik Tehditi

Python da sıklıkla kullanılan Input() fonksiyonu 2.X sürümünde dikkatli bir şekilde kullanılması gerekir. Çünkü kullanıcıdan alınan değer herhangi bir tip değişimi yapılmadan direkt olarak kullanır. Aşağıdaki python2 örneğinde değişkenlere sayı ve liste atanmıştır, ilgili değişkenlerin tiplerine bakıldığında da sayı ve liste oldukları görülür.

Aynı örneği Python3 ile yaptığımızda alınan değerlerin otomatik olarak stringe dönüştüğünü görürüz.

Python2 de bulunan zafiyet kontrol durumlarının atlatılmasında büyük tehlike oluşturur. Örneğin aşağıda bulunan kodda kullanıcıdan alınan parola ile sistemde bulunan parola eşleşiyorsa başarılı bir giriş sağlanıyor.

Python2 de input() girişine verilen değerlerde tip değişimi yapılmadığı için direkt olarak “parola” değişkeni input değeri olarak verilirse parola==parola olacağından giriş başarılı olacaktır.

Korunma Yöntemi

input() fonksiyonu yerine raw_input() fonksiyonu kullanılarak tip dönüşümleri sağlanabilir.

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir