Можно ли как-нибудь запретить открывать скрипт в браузере, но разрешить его выполнять для Cron?
return (php_sapi_name() === 'cli');
вернет true если запускалось из коммандной строки
Передавать кроном какой-нибудь произвольный ГЕТ, который будет ловится в скрипте