Şimdiye kadar tek yönlü yani kullanıcıdan veri girişi almadan çalışmalar yaptık. Bu günkü yazımızda kullanıcıdan veri girişi alan metotlar üzerinde duracağız.
raw_input(): bu komut ile kullanıcıdan karakter verilerini alabiliyoruz.
input(): bu komut ile de kullanıcıdan sayısal verilerini alabiliyoruz.
Bunlarla ilgili aşağıya yüklediğim çalışmaları inceleyebilirsiniz.
Örnek kodlar için..
Python serisindeki diğer yazılarımızda görüşmek üzere, hoşçakalın. :)
raw_input(): bu komut ile kullanıcıdan karakter verilerini alabiliyoruz.
input(): bu komut ile de kullanıcıdan sayısal verilerini alabiliyoruz.
Bunlarla ilgili aşağıya yüklediğim çalışmaları inceleyebilirsiniz.
Örnek kodlar için..
Güvenlik Açısından input() ve raw_input()
Python’da kullanıcıdan veri alabilmek
için input() ve raw_input() adlı iki farklı fonksiyondan
faydalanıyoruz. Bu iki fonksiyonun kendilerine has görevleri ve kullanım
alanları vardır. Ancak eğer yazdığınız kodlarda güvenliği de ön planda
tutmak isterseniz input() fonksiyonundan kaçınmayı tercih edebilirsiniz.
Çünkü input() fonksiyonu kullanıcıdan gelen bilgiyi bir komut olarak
algılar. Peki, bu ne anlama geliyor?
Örneğin, toplama işlemi için bir kod yazdığınızı düşünün iki sayıyı gönderdiğinizde input() metodu bunu komut olarak algıladı ve işlem gerçekleştirdi. Bu ilk bakıldığında sevimli görünse de tehlikeli bir özelliktir. Programı tekrar çalıştığımızı düşünelim ve aşağıdaki kodu input yerine yazdığımızı düşünelim.
" eval("__import__('os').system('rm bir_dosya')")"
Hatta bu satır, şimdi burada göstermek istemediğimiz, çok daha yıkıcı
sonuçlar doğurabilecek sistem komutlarının çalıştırılabilmesini sağlar
(bütün sabit diski silmek gibi...). Dolayısıyla eğer özellikle sunucu
üzerinden çalışacak kodlar yazıyorsanız input() fonksiyonunu kullanırken
dikkatli olmalısınız.
input() fonksiyonunun yukarıdaki risklerinden ötürü Python programcıları
genellikle bu fonksiyonu kullanmamayı tercih eder. Bunun yerine her
zaman raw_input() fonksiyonu kullanılır. Zaten raw_input() fonksiyonu
kullanıcıyla veri alış-verişine ilişkin bütün ihtiyaçlarımızı
karşılayacak özelliktedir. Ancak biz henüz raw_input() fonksiyonunu tam
kapasite kullanacak kadar bilgi sahibi değiliz. İleriki yazılarda eksik
bilgilerimizi de tamamladıktan sonra input() fonksiyonuna hiç
ihtiyacınız olmadığını göreceksiniz.Python serisindeki diğer yazılarımızda görüşmek üzere, hoşçakalın. :)
Yorumlar
Yorum Gönder