如何从托管我的网站的同一台服务器运行cron作业,而不是从任何其他平台(其他服务器或浏览器)运行?

时间:2018-04-26 07:40:08

标签: php joomla cron

我在服务器上设置了一个cron作业,用于从xml文件中导入joomla内容中的新闻。如果他们知道cron url,我想阻止其他人执行相同的cron。所以我需要某种身份验证。 现在我正在使用此代码进行预防。我知道如果cron从服务器运行,empty($_SERVER['REMOTE_ADDR']总是空的,所以这仅用于浏览器预防

//server only access
     if( empty($_SERVER['REMOTE_ADDR']) || empty($_SERVER['SERVER_ADDR']) || ($_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR']) ){
            //$_SERVER['argv'] may be  not available when register_argc_argv is disabled.
        if(empty($_SERVER['REMOTE_ADDR']) and (PHP_SAPI === 'cli' || !isset($_SERVER['HTTP_USER_AGENT'])) and count($_SERVER['argv']) > 0){

        }else{
            jexit('{"result":"error", "error":"'.JText::_('ACCESS_DENIED').'"}');
        }
    }

0 个答案:

没有答案