Ограничение доступа к cron.php
Прислано: axel
пн, 07/02/2005 - 06:00
Скрипт cron.php регулярно исполняющий сервисные функции сайта по расписанию по умолчанию доступен извне. В принципе его вызов не несёт к.л. неприятных последствий для сайта, если cron.php уже исполняется, то его повторное исполнение в это время будет блокировано. Поэтому организовать таким способом DOS атаку на сайт не удастся. Тем не менее частый вызов скрипта даже с интервалом в секунды или десятки секунд врядли имеет смысл поэтому можно на всякий случай (админская паранойа) ограничить доступ к cron.php только обращением из скрипта в crontab (т.е. с текущего сервера).
Для этого можно использовать директивы allow from в Apache в файле .htaccess:
<Files cron.php> order deny,allow allow from localhost allow from youhostname allow 123.45.67.89 </Files>
- идея должна быть ясна. Мы запрещаем доступ отовсюду кроме хостов (можно по именам, можно по ip) указанных директивами allow.
- Для комментирования войдите или зарегистрируйтесь
Респект! Давно удивляюсь, почему этот вопрос нигде не поднимается.
- Для комментирования войдите или зарегистрируйтесь
ждут пока рак свистнет, как и в случае с выборкой по таксономии.
- Для комментирования войдите или зарегистрируйтесь
Очень познавательно!
Но небольшая опечатка, в .htaccess следует писать так:
<Files cron.php> Order Allow,Deny Allow from localhost </Files> (сначало Allow, потом Deny)
Кроме того на некоторых хостингах WEB-сервер и cron стоят на разных серверах, поэтому для WEB-сервера следует указывать не localhost, а ip адрес сервера, на котором стоит cron.
Например для моего хостинга masterhost.ru будет верно работать:
<Files cron.php> Order Allow,Deny Allow from 83.222.23.200 </Files>
Для того чтобы выяснить IP адрес сервера на котором стоит cron, надо зайти на сервер по SSH и ввести команду:
host `hostname` (внимание! здесь стоят именно обратные кавычки и команда пишется дословно)
- Для комментирования войдите или зарегистрируйтесь
Еще можно просто переименовать файл (и не забыть снова это сделать при апгрейде).
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
- Для комментирования войдите или зарегистрируйтесь
Я вынес его в папку недоступную через web, и всего делов.
- Для комментирования войдите или зарегистрируйтесь
.htaccess лучше тем, что роботы тоже не получают доступа к этому файлу...
- Для комментирования войдите или зарегистрируйтесь
Спасибо! А можно ли запускать cron.php из командной строки, чтоб апач вообще не отвлекать?
- Для комментирования войдите или зарегистрируйтесь
Можно. Но он отработает только по сайту из sites/default/settings.php
Если у Вас не мультисайт - вполне можно. Только вот путь у интерпитатроу не всегда "php" - обычно на хостингах писают в фак.
- Для комментирования войдите или зарегистрируйтесь






Комментарии