• 20-11-2020, 17:47:24
    #1
    başka sunucuda yer alan php dosyayı tam url yolunu belirtip include edebilirmiyiz? aynı şekilde get ve post ile değer gönderip alabilir miyiz?
  • 20-11-2020, 17:50:59
    #2
    allow_url_include araştır, bide güvenlik nedeniyle sorun yaşayabilirsin
  • 20-11-2020, 19:06:37
    #3
    freguencey adlı üyeden alıntı: mesajı görüntüle
    allow_url_include araştır, bide güvenlik nedeniyle sorun yaşayabilirsin
    ne tür güvenlik sorunları hocam?
  • 21-11-2020, 15:28:50
    #4
    Üyeliği durduruldu
    Allow_url_include açık ise include edebilirsiniz, ama...

    Karşı sunucuda eğer PHP dosyası sunucu tarafında yorumlanıyorsa (ki bu WordPress vb. scriptlerin çalıştığı Apache, Nginx hostinglerde yorumlanır) <?php ?> şeklindeki PHP kod kısmına erişemezsiniz.

    Ne demek istiyorum? http://www.example.com/dosya.php konumunda dosyamız olsun. Bu dosya içeriği şöyle olsun: <?php $str = 'String İçeriği Buraya'; print 'Hello World'; ?>

    Daha sonra farklı bir sunucuda bunu include ile çekelim:
    <?php
    include 'http://www.example.com/dosya.php';
    print($str);
    ?>


    Burada ekrana Hello World yazıp hata verecektir (Undefined variable: str in...), çünkü dosya.php'de tanımladığımız $str değişkeni sunucu tarafında yorumlandı, ve kod çalışırken kullanıldı. Ama çıktıda bize dönmediği için include çektiğimizde çalışmadı.

    Çözümler:
    1.) http://www.example.com/dosya.php yerine http://www.example.com/dosya.txt şeklinde yorumlanmayacak bir formatta tutmak. (veya sunucu tarafı konfigrasyon ile php'nin yorumlanması kapatılabilir)
    2.) http yerine ftp protokolünü kullanarak dosya.php'ye erişmek. (ftp://1.1.1.1:21/dizin/dosya.php tarzı)
    3.) (Mantıklı Çözüm) Include kullanmak yerine uzak sunucuda bir rest api oluşturup curl ile ona istek gönderip veriyi JSON formatında almak.

    Neden 3. Çözümü Kullanmalıyım?
    1 ve 2. çözümde veriler herkese açık / erişilebilir durumda oluyor.