Upload Dosya Filtreleme

PHP sayfalarınızda upload kontrolünü kullanacaksanız, hackerların sisteminize basitçe sızasını önlemek için bir kaç önemli noktayı bilmelisiniz..

PHP sayfalarınızda upload kontrolünü kullanacaksanız, hackerların sisteminize basitçe sızasını önlemek için bir kaç önemli noktayı bilmelisiniz..

PHP sayfalarınızda kullanıcılara herhangi bir konuda upload hakkı verebilirsiniz. Mesela avatarlarını yüklemeleri konusunda onlara kolaylık sağlamak amacıyla vs. olabilir bu. İşte bu durumlarda hackerlara da aynı hakkı vermiş olursunuz ve bu hakkı onlardan esirgemelisiniz belki de.. Neden mi çünkü onlar avatar yükleme yerine çalıştırmak istedikleri bir FSO'yu sisteminize upload edecek, ardından da www.siteniz.com/images/avatarlar/fso.php şeklinde tam yolu tarayıcılarına yazarak bu dosyayı sizin sisteminiz için çalıştırarak sunucunuzun izin verdiği ölçüde sisteminizde at koşturacaklardır. Bu durumda yapılması gerekenler basit ancak hayati önem taşıyan ayrıntılar..

Öncelikle System.IO.Path ve System.Text.Regex namespacelerini kullanacağız.

Önce upload edilmek istenen dosyasın uzantısını kontrol edeceğiz ve istediğimiz uzantılar dışındakileri kabul etmeyeceğiz. Mesela .exe, .asp, .php, .cgi uzantılı dosyaları uyumsuz uzantılı dosya olarak görüp, kabul etmeyeceğiz. Tabi bunu sadece resim uzantılarına izin vererek yapmak daha mantıklı olacağından o şekilde yapalım..


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



Ardından kabul ettiğimiz uzantıları belirleyeceğiz ve bunların dışındakilerin yüklenememesini sağlayacağız.


using System.Text.RegularExpressions;

.....

if(Regex.IsMatch(dosyauzanti,".jpg|.jpeg|.gif|.png|.bmp") == false)

{

    // gönderilen dosya formatı uygun değil

}

else

{

    // gönderilen dosya formatı uygun.

}




Eğer dosya uzantılarını büyük harfli olarak gönderirse kullanıcı sistemin bunu da kabul etmesi için şöyle bir kod ekleyebilirsiniz :


dosyauzanti = dosyauzanti.ToLower();





Herkese başarılar, saygılarımla..
  • Etiketler;
Ziya Kahraman
Samsun'da doğdu. Üniversite'ye kadar bu şehirde öğrenim gördü. Sonra Atatürk Üniversitesi'nde dil okudu. Türkçe öğretmenliğini bitirdi; ama eğitimci olmadı. Türkçe'yle yoğruldu dört yıl. Bu esnada yazılım dilleri kurcaladı zihnini.. HTML, PHP, ASP, CSS, Pascal.. Hepsinden bir tutam aldı, kokladı bıraktı. <P>Sonra tasarımı keşfetti. PS, AI, C4D derken grafik programlarını öğrenmeye başladı. Grafik programlarını ustalıklı kullanmaya başladı. Ama asıl işin programları öğrenmek olmadığını anlaması da çok geç olmadı. Gözünü eğitmesi gerektiğini fark etti ve tasarım kültürü üzerine kafa yordu. Grafiğin felsefesini özümsemeye çalıştı. Noktaların sadece nokta olmadığını düşünerek başladı asıl tasarlama serüveni. Önceleri yalnızca hayal kurdu, imgelerle boğuştu; zihninde tasarladı çizgileri, renkleri, şekillleri.. Sonra ekrana geçti hayaller ve ardından kağıtlara.. <P>Hâlihazırda grafik tasarımcı olarak çalışıyor. Genellikle katalog, dergi, broşür, kurumsal kimlik, logo ve ambalaj tasarımı yapıyor. Bunlar yanında 3B modelleme ve interaktif tasarım da çalışıyor. Yayınlamayı düşündüğü bir rubai kitabı, tamamlamaya çalıştığı bir şiir, bir de hikâye kitabı bulunuyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yalnız düşünmeniz gereken bir nokta var. Ben resim.exe adında bir dosyanın uzantısını jpg yapıp pekala upload edebilirim. Bu işlem için en mantıklı yol dosya türünü almaktır. Yanlış mıyım acaba ?
peki bu şekilde upload ettiğinizde exe dosyası çalışır mı dersiniz?
bazen çalışır :D çok site hack edildi bizzat tarafımca (yabancı zararlı siteler ) .jpg uzantılı yapıp php shelli atıp pekala hacklerler
yaa o deil de be şunu anlayamadım.bu yazdıklarınız direk php sayfasınamı yazılacak.yazdım ama çalışmadı kodlar o yüzden soruyorum.direk alıp yapıştırdım nerde hata yapmış olabilirim???
Bu php ve C# çorbası olmuş malesef.Çok kötü bir makale..
Peki msatic, varsayalım ki değerlendirmen doğru ve bu makale tamamen karmaşık ve yanlış. Peki neresi yanlış, nereleri C# ile karışmış? Onları da yazsaydın da biz de ona göre düzenlememizi ve düzeltmemizi yapsaydık. Kaldı ki dersin yahut makalenin sizin eleştiriniz kadar eksik olduğu kanısında değilim. Eleştirileriniz silici değil, düzeltici olsun lütfen..

Yukarı Git