Назад | Перейти на главную страницу

Использование lynx или wget в cron для вызова php-скрипта?

Я изучаю конкретную настройку, и у них есть следующий crontab:

 0 * * * * lynx http://www.example.com/cron/scriptA.php

Конечно, здесь используется принцип «безопасность за счет неизвестности», потому что любой человек в Интернете, зная, где находятся эти файлы, может позвонить им и потенциально перегрузить сервер.

Кроме того, есть ли что-то принципиально неправильное в приведенной выше «модели» запуска этого скрипта.

Когда я тестировал рысь http://www.example.com/cron/scriptA.php из командной строки как root, он побудил меня загрузить файл cookie сеанса, поэтому я думаю, что мне нужно по крайней мере изменить приведенное выше, чтобы:

lynx -accept_all_cookies http://www.example.com/cron/scriptA.php

Или я должен использовать:

wget -q -O /dev/nul http://www.example.com/cron/scriptA.php

Если вы хотите защитить эти файлы, вы можете настроить свой веб-сервер так, чтобы подключения к этим конкретным сценариям разрешались только с localhost. Вы не упомянули, какой веб-сервер используете, но, например, в Apache это можно сделать с помощью комбинации Каталог и Разрешить / Запретить параметры, что-то вроде

<Directory /cron>
    Order deny,allow
    Deny from all
    Allow from localhost
</Directory>

Для дополнительной безопасности вы можете изменить свои скрипты cron, чтобы проверять адрес клиента. Если это не localhost, откажитесь от магии cron и верните что-нибудь еще.

Когда дело доходит до инструментов, lynx и wget подходят. Когда я использую lynx в cron, я обычно использую его с -дамп флаг, правда.