我有一个脚本,通过CRON任务中的CURL请求每天调用一次。我希望通过直接浏览器获取请求来保护它免于在我的实时域中执行。阻止CURL(通过CRON)请求的脚本在浏览器中运行
此时我无法将CRON移动到Web根目录之上。我现在定期任务是这样的:
curl -q https://example.com/cron/daily/ > /dev/null
然后在我的CRON控制器的头我会使用这样的:
if ((in_array($_SERVER["HTTP_HOST"], $this->config->item('live_domains'))) AND (IS_CURL)) {
show_error("Daily CRON tasks can only be run from the command line on the live server.");
}
使用秘密令牌作为参数,或通过htaccess以某种方式(不是100%有效,但多层应该帮助)锁定它。更好的办法是,将其移出网站并从CLI运行它 – CollinD
谢谢,我已经为应用配置添加了令牌/密钥,并且现在我正在CRON任务执行之前在实时服务器上检查它。 :) –