php - 如何从托管我的网站的同一台服务器而不是从任何其他平台(其他服务器或浏览器)运行 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').'"}');
}
}
解决方案
推荐阅读
- openiddict - 哪个 openiddict 示例适合阅读 WebAPI 授权和外部 React 身份验证和授权?
- gcov - 更改生成的 .gcda 文件权限
- python - 从另一个数据框中查找匹配元素并返回其 id-python
- javascript - 如何在 react-redux 中调度动作
- sphinx - Sphinx 3 索引关系数据库
- flutter - Flutter - 如何进行无限卡输入?
- jupyter-notebook - 来自输出的自动命令
- c - Getopt 无法识别选项
- javascript - 如何在 sitecore 中的所有页面上添加渲染?
- javascript - JavaScript 中的 Youtube 直播