http://visualogren.tr.gg/

TÜRKİYE CANIM FEDA


   
 
  Üye Ol
 
=> Daha kayıt olmadın mı?

Formumuzdan daha iyi faydalanmak için üye olun ve daha fazla içerik görün

Üye Ol - C# ile Kötü Niyetli Dosya Çalıştırma

Burdasın:
Üye Ol => C# => C# ile Kötü Niyetli Dosya Çalıştırma

<-Geri

 1 

Devam->


gece krallığı
(şimdiye kadar 41 posta)
01.01.2009 17:01 (UTC)[alıntı yap]
Web uygulamanıza FileUpload ile dosya yüklemesi yapmak durumunda iseniz gelen dosyanın türünü mutlaka denetlemek gerekir. Örneğin bir Forum uygulaması yaptınız ve kullanıcılar kendi resimlerini resimler klasörüne upload edebilmekteler. Saldırgan hazırlamış olduğu bir asp sayfasını resimler klasörüne upload eder ve www.siteniz.com/resimler/foo.asp şeklinde tam yolu yazarak dışardan göndermiş olduğu bir dosyayı sisteminizde çalıştırabilir.



Bu şekilde sisteminizin izin verdiği ölçüde yeni dosyalar oluşturabilir. Örneğin anadizinde ki default.aspx dosyasını silip yerine bir default.asp dosyası oluşturabilir. Böylece siteniz açıldığında “hacked by hacker ana” yazısı ile karşılaşabilirsiniz.



Böyle üzücü durumların yaşanmaması için sisteminize upload edilen dosyaların türünü denetlemek gerek.



Bunun için System.IO.Path ve System.Text.Regex namespacelerinden yararlanacağız.

Önce upload edilen dosyasın uzantısı nı alacağız ve kabul ettiğimiz dosya türleri içerisinde olup olmadığını denetleyeceğiz.

string uzanti = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);

System.IO.Path.GetExtension metodu uzntıyı bize “.jpg” gibi noktalı bir şekilde verir.



Kullanıcı tarafından gönderilen dosya ismi büyük harfler ile yazılmış olabilir. Buda birazdan yapacağımız karşılaştırmada farklıymış gibi algılanmasına sebep olur. Bu yüzden uzantı harflerini küçültelim.

uzanti = uzanti.ToLower();

Kabul edeceğimiz dosya uzantıları için teker teker if kontrolü yazmamak için Regular Expression ifadelerinden yararlacağız.



using System.Text.RegularExpressions;
.....
if(Regex.IsMatch(uzanti,".jpg|.jpeg|.gif|.png|.bmp" == false)
{
// gönderilen dosya formatı uygun değil
}
else
{
// gönderilen dosya formatı uygun.
}



Bütün konular: 40
Bütün postalar: 41
Bütün kullanıcılar: 4
Şu anda Online olan (kayıtlı) kullanıcılar: Hiçkimse crying smiley
 
 
  40522 ziyaretçi (66061 klik)  
 
wardom.org http://visualogren.tr.gg/ Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol