我在服务器上设置了一个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').'"}');
}
}