• 29-12-2012, 11:20:45
    #1
    Merhabalar arkadaşlar. Kendi Serverımda çalışan bir formum var. Bu formumdan başka bir server'a dosya yükletmek istiyorum. Bu işlemi güvenli bir şekilde yapabilmek için nasıl bir yol izlemeliyim? Uzak server'da yukle.php gibi bir oluşturup bu dosyanın içinde sadece benim server'ımın dosya yüklemesinemi izin vermeliyim ?
  • 29-12-2012, 11:29:25
    #2
    en basiti ile ile anlatayım form action="" olan yere server adresini http://www.serveradi.com/yukle.php gibi giriniz o serverda ki yukle php ye normal post işlemlerini atınız bu en doğal hali güvenlik için kendi içinizde capatcha yapar sonuc doğru ise javascript ile formu yine yukarıda belirteceğiniz adrese post eder.


    ek bir hatırlatma isterseniz diğer serverdaki yükle php nizi de referer göstererek sizin serverdan gelecek postları kabul ettirirseniz daha da güvenli olur.
  • 29-12-2012, 12:17:30
    #3
    istersen şöyle yap yada sonra söyleyeceklerimi yap sana kalmış dosya yüklemeyi jquery -javascript-ajax ile yap ister dosya seçilince ister dosyayı gönder deyince karşıya yüklesin yükleme tamamlanana kadarda ana formun gönderilmesini engelle bir hidden form elemanı oluştur resim bilgilerini de buna bas vb., ------ yada yapmak istersen curl le post ile dosyayı gönderttir karşıdaki form karşılayacak dosyaya ki bilirsiniz post ile göndermenin sınırı vardır bu mantıksız yol bence hemde sizin için zor olur, yada karşıda cek.php yap linki gönder dosya ana sunucuya yüklenince sunucundan base64 yada nasıl göndereceksen artık, karşı server çeksin sunucundan.
  • 29-12-2012, 15:22:41
    #4
    teşekkürler aşağıdaki gibi bir yol izledim hatasız bir şekilde çalışıyor fakat dosyayı Upload ' etmiyor. Nedeni ne olabilir acaba ?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:22:41 -->-> Daha önceki mesaj 14:55:15 --

    localim'deki index.php :
    <form method="POST" enctype="multipart/form-data" name="form" id="form" action="http://www.uzakserver.com/burak/yukle.php">
    <br />
    <input type="file" name="projeler" id="projeler" ><br />
    
    <input id="sub_olus" name="sub_olus" type="submit" />
    
    </form>
    uzak server'ımdaki yukle.php :
    $projeler_dosyaisim=$_FILES["projeler"]["name"];
    
    if (!empty($projeler_dosyaisim) AND empty($ikaz)) 
    	{
    		
    		
    		// Kontroller
    	  $uzanti=sonnokta($projeler_dosyaisim);
    	  $uzizin=uzantiizin($uzanti);
    		// Uzantı problemsizse,
    		if ($uzizin == "evet") { 
    			//Dosya isim random ve türkçe karakter arındırması
    			$rasgele=substr(md5(microtime()),0,6);
    			$projeler_dosyaisim2=urlduzelt($projeler_dosyaisim);
    			$projeler_dosyaisimdb=$projeler_dosyaisim2.'-'.$rasgele.'.'.$uzanti;
    			$yol="uploads/".$projeler_dosyaisim2.'-'.$rasgele.'.'.$uzanti;
    			move_uploaded_file($_FILES["projeler"]["tmp_name"],$yol);
    			echo "Dosya Başarılı Bir Şekilde Upload Edilmiştir.";
    		}
    		else {
    			$ikaz ='Yüklemek istediğiniz dosya türü sistem tarafından kabul edilmemektedir.<br>';	
    		}	
    		
    	}
  • 29-12-2012, 15:23:50
    #5
    Yüklenecek klasöre yazma izni verdiniz mi?
  • 29-12-2012, 15:39:09
    #6
    msgr adlı üyeden alıntı: mesajı görüntüle
    Yüklenecek klasöre yazma izni verdiniz mi?
    tamam şu anda düzeldi dosya izin ayarları ile ilgili bir problem varmış

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:39:09 -->-> Daha önceki mesaj 15:26:48 --

    VTA adlı üyeden alıntı: mesajı görüntüle
    en basiti ile ile anlatayım form action="" olan yere server adresini http://www.serveradi.com/yukle.php gibi giriniz o serverda ki yukle php ye normal post işlemlerini atınız bu en doğal hali güvenlik için kendi içinizde capatcha yapar sonuc doğru ise javascript ile formu yine yukarıda belirteceğiniz adrese post eder.


    ek bir hatırlatma isterseniz diğer serverdaki yükle php nizi de referer göstererek sizin serverdan gelecek postları kabul ettirirseniz daha da güvenli olur.
    referer olayı güvenlik olarak iyimidir acaba ?
  • 29-12-2012, 15:44:29
    #7
    hayır yeterli değildir, ortak bir db kullanıp karşılıklı bir kaydı kontrol ettirmeniz daha güvenlidir. Curl ile referer verilebilir ve upload sitesine döndürülebilir siteniz
  • 29-12-2012, 15:54:10
    #8
    oophp adlı üyeden alıntı: mesajı görüntüle
    hayır yeterli değildir, ortak bir db kullanıp karşılıklı bir kaydı kontrol ettirmeniz daha güvenlidir. Curl ile referer verilebilir ve upload sitesine döndürülebilir siteniz
    Teşekkür ederim o tarz bişi kullanacağım
  • 30-12-2012, 00:06:32
    #9
    FTP ile de yapabilirsiniz.

    function uploadFile($ftp_conn,$source,$file,$target){
    
    	$kaynak = $source; 
         
        if(@ftp_chdir($ftp_conn,$target)){ 
                 
            if(@ftp_put($ftp_conn,$file,$kaynak,FTP_BINARY)){              
                          
            }else{ 
             
            echo "Hata dosya yüklenemedi"; 
            }      
         
        }else{ 
              
        echo "/ Dizine geçilemedi"; 
        } 
    
    	//ftp_close($ftp_conn); 
    	
    	
    	}
    	
    
    	$ftp_user_name = "user";
    	$ftp_user_pass = "pass";
    	$ftp_host = "ip ya da ftp adresi";
        
    
        $ftp_id = ftp_connect($ftp_host);   
        $ftp_baglan = ftp_login($ftp_id, $ftp_user_name, $ftp_user_pass);  
    
        if ((!$ftp_id) || (!$ftp_baglan)) {   
         die("FTP BAGLANTISI SAĞLANAMIYOR"); 
        } 
          
          
        if(!ftp_pasv($ftp_id,TRUE)){   
         die("PASV moduna geçilemedi");   
    	}
    	
    
    uploadFile($ftp_id,'folder/file.dat','file.dat','/folder');