在cron作业中检测人类浏览器的PHP

在cron作业中检测人类浏览器的PHP,php,user-agent,Php,User Agent,我想阻止用户手动运行我的cron作业。除了使用不可预测的文件名外,我还希望有某种签入代码 显然,使用任何客户端头都是浪费时间,因此我认为最简单的解决方法是检测$\u SERVER['SERVER\u NAME']的存在,据我所知,它没有在CLI中设置 有更好的方法吗?检查IP地址(如果是本地的)或服务器IP,然后运行它,否则返回 $ip = getenv('REMOTE_ADDR'); 在您的.htaccess中 Options -Indexes order allow deny deny

我想阻止用户手动运行我的cron作业。除了使用不可预测的文件名外,我还希望有某种签入代码

显然,使用任何客户端头都是浪费时间,因此我认为最简单的解决方法是检测
$\u SERVER['SERVER\u NAME']
的存在,据我所知,它没有在CLI中设置


有更好的方法吗?

检查IP地址(如果是本地的)或服务器IP,然后运行它,否则返回

$ip = getenv('REMOTE_ADDR');
在您的.htaccess中

Options -Indexes

order allow deny
deny from all
allow from YOUR SERVER IP ADDRESS ONLY
看一看。它返回web服务器和PHP之间的接口类型

例如:

<?php

if(php_sapi_name() == 'cli') {
  // CLI
}
else {
  // HTTP
}

我的cron作业位于使用密码保护的文件夹中。你可以设置一个简单的密码,并确保没有人会浪费时间试图访问它。我不使用任何基于IP的技术,因为这是我不想要的服务器依赖关系。

您使用了哪种方法?有什么好结果吗?我使用了php_sapi_name()。。。似乎是最强大的甲烷-我不知道这个命令,正是我需要的