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

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

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

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

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

Когда я тестировал lynx 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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам