Cron beveiliging

  • Ik heb een cron script:


    Code
    $RunLog = 'includes/crons/hour.log'; //make sure you have this file downloaded tooif (file_exists($RunLog)) {     $lastRun = file_get_contents($RunLog);     if (time() - $lastRun >= 3600) { //This will check last time file ran. Right now if it's less than an hour it will rerun your file.$cron= file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/includes/crons/hour.php');  // here you put the  link for your file or the php code                  file_put_contents($RunLog, time()); 			    } 	}


    Na een uur wordt de cron gerunt. Het probleem is nu dat wanneer ik rechtsstreeks naar het cron script http://www.mijndomein.nl/includes/crons/hour.php ga de update ook wordt uitgevoerd. Wat ik nu wil is dat ik het hour.php script beveilig zodat deze alleen wordt uitgevoerd na de 3600 seconden met behulp van mijn cron script


    Dit is mijn hour.php


    PHP
    <?php
    mysql_query("UPDATE `users` SET `power`=`power`+'10'");
    
    
    ?>


    Iemand enig idee hoe ik dit kan doen?

  • Je zou de cron uit de public_html map kunnen halen en in DirectAdmin laten uitvoeren.
    Of je zou op tijd kunnen controleren m.b.v. een database en de PHP date functie.


    Al zou ik eerder voor optie 1 gaan want een cron in de public_html is sowieso niet het veiligste wat er is.

  • .htaccess in de map gooien waar je iedereen blokkeerd en jezelf behalve de server(127.0.0.1) en de normale server ip bijv 55.443.223.13.


    Eventueel:


    PHP
    $allowedIps = array('127.0.0.1','::1');
    if(!in_array($_SERVER['REMOTE_ADDR'],$allowedIps)){
        echo 'Foei.. niet toegestaan';
    }else{
        echo 'Welkom ..';
    }


    Kon je zo van google plukken :)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!