• 22-01-2022, 06:54:25
    #1
    İnternetten bir türlü bulamadım linux sunucuma apache2 kurulu php ile örnek opt klasöründen bir dosya indireceğim bunu nasıl yapabilirim ?

    Site dosyaları /var/www/html içerisinde


            if(isset($_POST['indirdosya'])){
                
                $dosyayolu = "/opt/ahmet/deneme.dat";
                if(file_exists($dosyayolu)){
                   header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
                   header("Content-Type: octet-stream");
                   header("Content-Transfer-Encoding: Binary");
                   header("Content-Length: ".filesize($dosyayolu));
                   header("Content-Disposition: attachment; filename=\"".basename($dosyayolu)."\"");
                   readfile($dosyayolu);
                }
                else
                {
                    echo "dosya yok";
                }
            }
    böyle yaptığım zaman bulunduğum sayfanın indexini deneme.dat içerisine yazıyor
  • 22-01-2022, 07:07:55
    #2
    terminal üzerinden işlem yapılan php dosyasına (örn: index.php) şu komutu verin. chmod +x index.php
    Dosya üzerindeki kısıtlamaları kaldırır fakat sunucunuzda güvenlik zaafiyeti yaratabilir.
  • 22-01-2022, 07:11:04
    #3
    BeratYildiz adlı üyeden alıntı: mesajı görüntüle
    terminal üzerinden işlem yapılan php dosyasına (örn: index.php) şu komutu verin. chmod +x index.php
    Dosya üzerindeki kısıtlamaları kaldırır fakat sunucunuzda güvenlik zaafiyeti yaratabilir.
    İzinlerini açtım sorun devam ediyor.
  • 22-01-2022, 07:11:44
    #4
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    İzinlerini açtım sorun devam ediyor.
    Hata çıktısı mevcut mu ?
  • 22-01-2022, 07:11:50
    #5
    ../../../ şeklinde üste çıkmayı denediniz mi ?
  • 22-01-2022, 07:14:36
    #6
    Volt adlı üyeden alıntı: mesajı görüntüle
    ../../../ şeklinde üste çıkmayı denediniz mi ?
    Yani aslında yanlış söylemişim size indireceğim dosya html içerisinde yani aynı dizindeler ama indirme yaptığım php /var/www/html/panel/indirme.php indireceğim dosya /var/www/html/dosyayonetici/xx.dat kodmu şu şekilde düzenlediğim zaman

            
            if(isset($_POST['indirdosya'])){
                 
                $dosyayolu = "../dosyayonetici/xx.dat";
                if(file_exists($dosyayolu)){
                   header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
                   header("Content-Type: octet-stream");
                   header("Content-Transfer-Encoding: Binary");
                   header("Content-Length: ".filesize($dosyayolu));
                   header("Content-Disposition: attachment; filename=\"".basename($dosyayolu)."\"");
                   readfile($dosyayolu);
                }
                else
                {
                    echo "dosya yok";
                }
            }
    yine aynı şekilde buluduğum sayfanın kaynak kodlarının bir kısmını içine yazıyor
  • 22-01-2022, 07:20:19
    #7
    @Volt; şimdi şöyle oldu dosyayı indirme yaptığım php dosyasının bulunduğu dizine çektim aynı şekilde sayfanın kaynak kodlarını yazıyor yarısını indirme işlemindemi sıkıntımız var acaba


    EDİT:

    İlginç form kısmına action="indir.php" yaparak indirme işlemini indir.php yaptırdım oldum acaba neden böyle bir sorun oldu ?