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

问题描述

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

//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').'"}');
        }
    }

标签: phpjoomlacron

解决方案


推荐阅读