Какой лучший способ гарантировать, что только CRON выполняет PHP-скрипты, а не кто-то другой, кто наткнулся на ваши php-скрипты.
Я думал о пароле Variable …. но это законная команда CRON? :
/usr/local/bin/php -f /home/mysite/public_html/dir/script?password=12345
Таким образом, люди не могут выполнять одни и те же команды при посещении скрипта PHP через HTTP (если только они не знают пароль)
Благодарю.
Вы должны хранить этот файл вне public_html
/usr/local/bin/php -f /home/mysite/script // is secure from public access
Предположим, что если вы не хотите, чтобы кто-нибудь запускал файл через http, тогда установите cron с помощью команды php, как вы делаете, и добавьте htacess в папку cron, чтобы заблокировать HTTP-запрос в папку, добавив
отказать всем в htacess
Предположим, что если u хочет, чтобы папка cron была защищена паролем, это можно сделать, как указано в URl
http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/
Не помещайте скрипт в свой каталог public_html (или в любом месте под вашим корнем), если вам нужно выполнить его только из cron. Это действительно настолько просто.
Вы можете отправить params в файл PHP через командную строку. Просто не так, как вы думаете.
http://www.php.net/manual/en/reserved.variables.argc.php
Тем не менее, вы также хотите сохранить это в общедоступной папке html, как говорят другие. Поэтому вы НЕ МОЖЕТЕ заниматься серфингом. PHP, запускаемый из командной строки, не обязательно должен находиться в какой-либо папке просмотра веб-сервера.
Или вы можете заблокировать выполнение по IP-адресу:
($ _SERVER ['REMOTE_ADDR'] == "127.0.0.1") или умереть («НЕТ ДОСТУПА»);
Наличие пароля может работать, но:
Допустимым решением будет проверка вашего PHP-скрипта, что текущая среда похожа на ту, которая предоставляется cron при запуске команд. Специфические переменные среды Cron могут помочь вам убедиться, что ваш скрипт запущен fby cron, а не пользователем.