• 27-05-2018, 06:13:15
    #1
    Merhabalar,

    Cron job dosyasına dışarıdan erişim engellemek için hangi yöntemi kullanabilirim? Ancak kullanılacak yöntem cron job çalışmasını etkilemeyecek şekilde olmalı. Bir kaç şey denedim ama işe yaramadı.

    Bir çözüm yolu bilen veya deneyebileceğim bir fikri olanlardan yardım rica ediyorum.

    Denediklerim;
    PHP -> $_SERVER['HTTP_REFERER']

    htaccess;
    <Files "cronjob.php">
    Order Allow,Deny
    Deny from all
    </Files>
    Teşekkürler.
  • 27-05-2018, 06:18:46
    #2
    IP adres denedin mi hocam? sunucu ipsine aktif olacak digerlerine kapali?
  • 27-05-2018, 06:27:07
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    En güvenilir ve sağlıklı yontem ilgili PHP dosyasını public_html dizini dışında tutmaktır. (Bir üst dizinde) Bu şekilde web üzerinden gelen kullanıcılar bu dosyaya istekte bulunamazlar. (siteismi.com -> /public_html/index.php ye karşılık geldiği ve gelen ziyaretçinin üst dizine erişme ihtimali olmadığı için). Cronjob ta php komutuna /home/user/.../dosyaismi.php şeklinde parametre vererek istediğiniz dosyayı çalıştırabilirsiniz.

    Daha açıklayıcı olması açısından; mesela Cpanelden sitenizin yedeğini aldığınızda .tar.gz uzantılı dosyayı /home/user/ dizinine oluşturur. Eğer public_html e oluştursaydı, Google sitenizi tararken bu dosyayı ya indexler ve bir ziyaretçi gelip yedeğinizi indirebilirdi.
  • 27-05-2018, 06:32:05
    #4
    Secure_web adlı üyeden alıntı: mesajı görüntüle
    En güvenilir ve sağlıklı yontem ilgili PHP dosyasını public_html dizini dışında tutmaktır. Bu şekilde web üzerinden gelen kullanıcılar bu dosyaya istekte bulunamazlar.
    O zaman cron yolları nasıl olmalıdır? Örn : alanadi.com/cron.php yapıyoruz public_html dizininin dışında tutarsak nasıl eklemeliyiz?
  • 27-05-2018, 06:37:34
    #5
    Mehmetmasa adlı üyeden alıntı: mesajı görüntüle
    O zaman cron yolları nasıl olmalıdır? Örn : alanadi.com/cron.php yapıyoruz public_html dizininin dışında tutarsak nasıl eklemeliyiz?
    Bu yöntemde wget ile değil php komutu ile ilgili dosyayı çağırmanız gerekli. wget 'e URL adresini parametre olarak verirken, php komutuna dosya yolu veriyoruz. Örnek olarak aşağıdaki gibi kullanılabilir.

    php /home/username/crondosyasi.php
  • 27-05-2018, 06:52:06
    #6
    Platin üye
    <?php
    
    if(isset($_GET['pass'])) {
      if($_GET['pass']!="benimsifrem") die('');
    } else { die(''); }
    
    ?>
    script.php?pass=benimsifrem
    cronu passı düzenleyerek bu şekilde çağırabilirsiniz, direkt erişimlerin önüne geçersiniz.

    İyi çalışmalar dilerim.
  • 27-05-2018, 11:05:14
    #7
    SaidYildiz adlı üyeden alıntı: mesajı görüntüle
    IP adres denedin mi hocam? sunucu ipsine aktif olacak digerlerine kapali?
    Secure_web adlı üyeden alıntı: mesajı görüntüle
    En güvenilir ve sağlıklı yontem ilgili PHP dosyasını public_html dizini dışında tutmaktır. (Bir üst dizinde) Bu şekilde web üzerinden gelen kullanıcılar bu dosyaya istekte bulunamazlar. (siteismi.com -> /public_html/index.php ye karşılık geldiği ve gelen ziyaretçinin üst dizine erişme ihtimali olmadığı için). Cronjob ta php komutuna /home/user/.../dosyaismi.php şeklinde parametre vererek istediğiniz dosyayı çalıştırabilirsiniz.

    Daha açıklayıcı olması açısından; mesela Cpanelden sitenizin yedeğini aldığınızda .tar.gz uzantılı dosyayı /home/user/ dizinine oluşturur. Eğer public_html e oluştursaydı, Google sitenizi tararken bu dosyayı ya indexler ve bir ziyaretçi gelip yedeğinizi indirebilirdi.
    Hero adlı üyeden alıntı: mesajı görüntüle
    <?php
    
    if(isset($_GET['pass'])) {
      if($_GET['pass']!="benimsifrem") die('');
    } else { die(''); }
    
    ?>
    script.php?pass=benimsifrem
    cronu passı düzenleyerek bu şekilde çağırabilirsiniz, direkt erişimlerin önüne geçersiniz.

    İyi çalışmalar dilerim.
    en mantıklı ve basit çözüm public_html dışına taşımak gibi görünüyor. herkese teşekkürler.