Лучшее место для хранения файлов, вызываемых cron-заданиями?

Вопрос или проблема

Я заинтересован в создании веб-сайта на WordPress, которому необходимо обновлять определенные пользовательские таблицы базы данных после получения данных из RESTful веб-сервисов, скажем, раз в день.

Я могу достичь этого, используя скрипт для запроса к REST API, обработки данных и их сохранения в необходимых таблицах.

Однако я не уверен, куда поместить этот файл скрипта, чтобы cron мог вызывать его без каких-либо проблем (в плане безопасности).

  • Могу ли я разместить эти файлы скриптов на уровне корня каталога WordPress (например, /script1.php, script2.php и т.д.)?
  • Или мне создать плагин из скрипта, сможет ли cron получить доступ к этому файлу, находящемуся в каталоге плагинов?

ОБНОВЛЕНИЕ

  1. Будет использоваться несколько скриптов cron, поэтому я хочу создать плагины из каждого скрипта. Сможет ли cron получить доступ к файлам в каталоге плагинов?

Кто-нибудь может помочь?

Предполагая, что вы выполняете задания cron под своей учетной записью, она будет иметь доступ к любой папке, к которой ваша учетная запись имеет доступ для чтения. Если вам не нужно, чтобы они были общедоступными, и у вас есть доступ к папке за пределами вашей публичной веб-корневой директории, то в целях безопасности вы должны разместить их вне веб-корня.

Однако, если вы используете общий хостинг, это может быть невозможно из-за ограничений open_basedir. В этом случае вы можете создать подкаталог в вашем основном каталоге WordPress или в папке ваших плагинов. Вы можете добавить файл htaccess, чтобы заблокировать доступ снаружи.

Ответ или решение

Теория:

Когда вы запускаете cron-задачи для обновления вашей базы данных в WordPress, важно разместить файлы с скриптами в безопасном месте, чтобы они были доступны для выполнения, но при этом не представляли угрозу безопасности. Существует несколько общих стратегий для обеспечения безопасности файлов скриптов cron. Во-первых, если возможно, разместите их за пределами корневого каталога веб-сервера, чтобы предотвратить публичный доступ через интернет. Во-вторых, если у вас нет доступа к директориям вне веб-рута (что часто происходит на совместных хостингах из-за ограничений open_basedir), создайте подкаталог внутри основной директории WordPress или в каталоге плагинов, и ограничьте доступ снаружи с помощью дополнительных настроек безопасности, например, используя файл .htaccess.

Пример:

При использовании совместного хостинга, где директории вне публичного корня недоступны, вы можете создать подкаталог, например, /private-scripts, и поместить свои скрипты туда. В этом каталоге создайте файл .htaccess с содержимым, предотвращающим доступ из интернета:

<Files *.php>
    Deny from all
</Files>

При этом, запланированные задачи cron будут иметь доступ к этим файлам для их выполнения, в то время как попытки доступа через веб-интерфейс будут заблокированы.

Применение:

Прежде всего, определите, есть ли у вашего хостинга возможность разместить файлы за пределами веб-доступных папок. Если эта возможность недоступна, выберите один из возможных безопасных путей внутри вашей установки WordPress. Создайте подкаталог, как было упомянуто ранее, и скопируйте туда все необходимые скрипты. Затем, создайте .htaccess файл внутри этого подкаталога, чтобы обезопасить его содержимое от несанкционированного доступа через веб-интерфейс.

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

Таким образом, без необходимости использования плагинов, вы можете эффективно шедулировать и выполнять свои задачи cron, сохраняя высокий уровень безопасности вашего веб-приложения.

Оцените материал
Добавить комментарий

Капча загружается...