• 28-05-2008, 16:32:11
    #1
    Arkadaşlar hazır bir script kullanıyorum .Script resim upload ederken html dosyasının uzantısını gif olarak yapıp upload etmeye izin veriyor.Bunu engellemek için nasıl bir yola başvurmam gerek ?
  • 29-05-2008, 01:14:14
    #3
    nasıl kullanıcağım hakkında hiçbir fikrim yok upload işlemi için örnek bi kodlama gösterebilirmisiniz?
  • 29-05-2008, 01:19:01
    #4
    Bende bilmiyorum bu fonksiyonu ama mantiken soyle sanirim,
    if(mime_content_type($GELENRESIMURL)=="image/gif"){
    // BURADA UPLOAD ISLEMI GERCEKLESECEK
    }else{
    echo 'hata';
    // HATA VERECEK
    }
    Bu kodda gelen dosya eger gif ise yukleyecek degilse hata verecek, dene bakalim olacak mi?
  • 29-05-2008, 01:53:15
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    mime type bypass edilebiliniyor dosyanın başın herhangi bir php dosyasının başına GI89a; yazınca gif olarak algılıyor 2. Olarakta http İle veri yollayınca aynı şekilde mime type fake olarak gönderilebiliyor. Başka bir fonksiyo vardı fakat şimdi hatırlayamıyorum.
    Aşağıdaki Kodlar sana yardım edebilir.
     function uzantibul($file) {
        $array = explode('.',$file);
        $key   = count($array) -1;
        $ext   = $array[$key];
        return $ext;
        }
    $s=strtolower(uzantibul($_FILES[deneme][name]));
    $os = array("gif", "png", "jpg", "jpeg"); // izin vermek istediğin dosya türleri
    if (!in_array($s, $os)) {
    echo("Geçersiz Resim Türü");
    exit();
    }
  • 29-05-2008, 02:49:21
    #6
    S4l1h adlı üyeden alıntı: mesajı görüntüle
    mime type bypass edilebiliniyor dosyanın başın herhangi bir php dosyasının başına GI89a; yazınca gif olarak algılıyor 2. Olarakta http İle veri yollayınca aynı şekilde mime type fake olarak gönderilebiliyor. Başka bir fonksiyo vardı fakat şimdi hatırlayamıyorum.
    Aşağıdaki Kodlar sana yardım edebilir.
     function uzantibul($file) {
        $array = explode('.',$file);
        $key   = count($array) -1;
        $ext   = $array[$key];
        return $ext;
        }
    $s=strtolower(uzantibul($_FILES[deneme][name]));
    $os = array("gif", "png", "jpg", "jpeg"); // izin vermek istediğin dosya türleri
    if (!in_array($s, $os)) {
    echo("Geçersiz Resim Türü");
    exit();
    }
    Dostum unuttuğun fonksiyonu hatırlasan güzel olucaktı.
    upload.php
    <?
    if (empty($_FILES["resim"]["name"])) {
      echo '
        <script language="javascript">
            alert("Resim seçilmedi seçde gel.");
            history.back();
        </script>';
    exit;
    }
    $kaynak = $_FILES["resim"]["tmp_name"]; 
    $dosya = str_replace(" ", "_", $_FILES[resim][name]);
    $uzanti = explode(".", $_FILES[resim][name]);
    $hedef  = "upload/".$dosya;
    if ($uzanti[1] == "jpg" || $uzanti[1] == "bmp" || $uzanti[1] == "JPG" || $uzanti[1] == "gif" || $uzanti[1] == "GIF" || $uzanti[1] == "png" || $uzanti[1] == "PNG" || $uzanti[1] == "TIF" || $uzanti[1] == "TIFF" ) {
    if (file_exists($hedef)) {
        $hmz = substr(md5(uniqid(rand())),0,8);
        $hedef = "upload/$hmz-".$dosya;
        $dosya = "$hmz-".$dosya;
    }
    move_uploaded_file($kaynak,$hedef);
    echo " dosya eklendi link: $hedef ";
    } else
    { echo " geçersiz dosya tipi "; }
    ?>
    index.php
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <form name="form1" enctype="multipart/form-data" method="post" action="upload.php">
      <input name="resim" type="file" id="resim">
      <br>
      <br>
      <input name="submit" type="submit" id="submit" value="y&uuml;kle gitsin">
    </form>
    </body>
    </html>
    resmi upload klasörüne yüklüyor verdiğin kodları nasıl entegre edicem?
  • 29-05-2008, 04:53:53
    #7
    Salih Kral, yahu explode ile parçalamak daha kötü. birde gd'den bağımsız çalışan getimagesize fonksiyonu vardı.
  • 29-05-2008, 07:47:27
    #8
    hayalet42 adlı üyeden alıntı: mesajı görüntüle
    Dostum unuttuğun fonksiyonu hatırlasan güzel olucaktı.
    upload.php
    <?
    if (empty($_FILES["resim"]["name"])) {
      echo '
        <script language="javascript">
            alert("Resim seçilmedi seçde gel.");
            history.back();
        </script>';
    exit;
    }
    $kaynak = $_FILES["resim"]["tmp_name"]; 
    $dosya = str_replace(" ", "_", $_FILES[resim][name]);
    $uzanti = explode(".", $_FILES[resim][name]);
    $hedef  = "upload/".$dosya;
    if ($uzanti[1] == "jpg" || $uzanti[1] == "bmp" || $uzanti[1] == "JPG" || $uzanti[1] == "gif" || $uzanti[1] == "GIF" || $uzanti[1] == "png" || $uzanti[1] == "PNG" || $uzanti[1] == "TIF" || $uzanti[1] == "TIFF" ) {
    if (file_exists($hedef)) {
        $hmz = substr(md5(uniqid(rand())),0,8);
        $hedef = "upload/$hmz-".$dosya;
        $dosya = "$hmz-".$dosya;
    }
    move_uploaded_file($kaynak,$hedef);
    echo " dosya eklendi link: $hedef ";
    } else
    { echo " geçersiz dosya tipi "; }
    ?>
    index.php
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <form name="form1" enctype="multipart/form-data" method="post" action="upload.php">
      <input name="resim" type="file" id="resim">
      <br>
      <br>
      <input name="submit" type="submit" id="submit" value="y&uuml;kle gitsin">
    </form>
    </body>
    </html>
    resmi upload klasörüne yüklüyor verdiğin kodları nasıl entegre edicem?
    Yanlış Olmuş Kodlar
    adam shell.jpg.php diye dosya yollarsa dosya yüklenir.
    Aşağıda'ki kodlar işini görecektir yanlarına açıklamalarını yazdım
    <? 
     function uzantibul($file) { 
        $array = explode('.',$file); 
        $key   = count($array) -1; 
        $ext   = $array[$key]; 
        return $ext; 
        } 
    if (empty($_FILES["resim"]["name"])) { 
      echo ' 
        <script language="javascript"> 
            alert("Resim seçilmedi seçde gel."); 
            history.back(); 
        </script>'; 
    exit; 
    } 
    $kaynak = $_FILES["resim"]["tmp_name"];  // Dosyayı tmp dizinine kaydettik
    $dosya = str_replace(" ", "_", $_FILES[resim][name]);  // Gelen dosya ismi
    $s=strtolower(uzantibul($dosya)); // Dosyanın Uzantısını buluyoruz jpg gif png her ne ise
    $os = array("gif", "png", "jpg", "jpeg","png","bmp","tif"); // izin vermek istediğin dosya türleri 
    if (!in_array($s, $os)) {  // Check ediyoruz gelen dosya türü kabul ettiklerimizdenmi diye
    echo("Geçersiz dosya Türü"); 
    exit();  // exit kullanıyoruz aksi taktirde işlem devam eder
    } 
    $hedef  = "upload/".$dosya; // Dosyanın yükleneceği konumu oluşturuyoruz
    if (file_exists($hedef)) {  // Daha önce aynı isimde kayıtlı dosya varmı bakıyoruz
        $hmz = substr(md5(uniqid(rand())),0,8);  // eğer aynı isimde kayıylı dosya var ise rand sayı oluşturup 
        $hedef = "upload/$hmz-".$dosya; //dosya adına ekliyoruz
    } 
    move_uploaded_file($kaynak,$hedef);  // dosyayı yüklüyoruz
    echo " dosya eklendi link: $hedef "; // dosya linkini yazıyoruz
    ?>
  • 17-05-2014, 15:18:51
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    uplıoad edilen dosyanın içeriini nasıl kontrol ederiz arkadaşlar ? örnek uplaod edilen dosyada shell_exec varsa dosya up edilmesin nasıl uyaparız bunu ?