Прошу извинить, что не сразу отвечаю. Был в отъезде, интернет слабый.
Думаю, нужно яснее объяснить суть проблемы. Мне кажется, тут баг какой-то, и угроза безопасности определенная!
Пока изложу то что я имею на следующей конфигурации. Попозже проверю другие версии Joomla.
1-й вариант — «Система кэш» отключена, Плагин «Кэширование страниц» — включен.
- Windows 10
- Joomla! 3.8.12 (установлена локально на OSPanel 5.2.2, PHP 7.2).
- Системные настройки — Время жизни кэша: 1 (1 минута).
- Системные настройки — Система кэш: Выключена (OFF).
- Плагин «Кэширование страниц» — включен.
Файлы кэша исправно формируются в каталоге "cache/page" при первом просмотре любой страницы.
Но не работает функция очистки устаревшего кэша Joomla (кнопка в административной панели Joomla) "
Очистить устаревший кэш".
Последовательность действий такая:
- Очистил каталог "cache/page"
- Походил по 2-3 страницам сайта, в каталоге "cache/page" вижу как создаются файлы кэша
- Жду минут 20 (хотя в настройках время жизни кэша вообще 1 минуту поставил)
- В административной панели сайта иду в раздел "Удаление устаревшего кэша", жму кнопку "Очистить устаревший кэш", получаю уведомление на экране "Файлы устаревшего кэша были удалены"
- Смотрю в каталоге "cache/page": ничего не удаляется вообще!
2-й вариант — «Система кэш» включена (консервативное кэширование), Плагин «Кэширование страниц» — отключен.
- Windows 10
- Joomla! 3.8.12 (установлена локально на OSPanel 5.2.2, PHP 7.2).
- Системные настройки — Время жизни кэша: 1 (1 минута).
- Системные настройки — Система кэш: Включена (Консервативная).
- Плагин «Кэширование страниц» — отключен.
Файлы кэша формируются в каталоге "cache/com_content/" при первом просмотре любой страницы.
Опять не работает функция очистки устаревшего кэша Joomla (кнопка в административной панели Joomla) "
Очистить устаревший кэш".
Последовательность действий такая:
- Очистил каталог "cache/"
- Походил по 2-3 страницам сайта, в каталоге "cache/com_content/" вижу как создаются файлы кэша
- Жду минуты 3-4 (в настройках время жизни кэша 1 минута )
- В административной панели сайта иду в раздел "Удаление устаревшего кэша", жму кнопку "Очистить устаревший кэш", получаю уведомление на экране "Файлы устаревшего кэша были удалены"
- Смотрю в каталоге "cache/com_content/": ничего не удаляется вообще!
3-й вариант — «Система кэш» включена (консервативное кэширование), Плагин «Кэширование страниц» — включен.
- Windows 10
- Joomla! 3.8.12 (установлена локально на OSPanel 5.2.2, PHP 7.2).
- Системные настройки — Время жизни кэша: 1 (1 минута).
- Системные настройки — Система кэш: Включена (Консервативная).
- Плагин «Кэширование страниц» — включен.
Файлы кэша формируются в каталогах "cache/com_content/" и "cache/page" при первом просмотре любой страницы.
Опять не работает функция очистки устаревшего кэша Joomla (кнопка в административной панели Joomla) "
Очистить устаревший кэш".
Последовательность действий такая:
- Очистил каталог "cache/"
- Походил по 2-3 страницам сайта, в каталоге "cache/com_content/" вижу как создаются файлы кэша
- Жду минуты 3-4 (в настройках время жизни кэша 1 минута )
- В административной панели сайта иду в раздел "Удаление устаревшего кэша", жму кнопку "Очистить устаревший кэш", получаю уведомление на экране "Файлы устаревшего кэша были удалены"
- Смотрю в каталоге "cache/com_content/" и и "cache/page": ничего не удаляется вообще!
К сожалению, у меня нет времени изучить код Joomla сейчас, пробовал, но не вижу, за что зацепиться..
Дело в том, что я вижу потенциальную угрозу безопасности сайта/хостинга в виде переполнения каталога "cache"!
Файлы кэша формируются к обращению еще не просмотренных никем страниц, но проблема в том, что страница считается не просмотренной в частности на основе уникальных параметров в
query string. И беда в том, что система не анализирует, происходит запрос к реально существующей странице или
query string просто рандомная!
Таким образом, любой злонамеренный бот может быстро забить каталог "cache/" запросами вида:
sitе.com/?a=1, sitе.com/?a=2, sitе.com/?a=3 ..... sitе.com/?a=100000000
Почему встал вопрос именно об очистке
устаревшего кэша Joomla? Потому что его можно чистить, запустив скрипт в "cli/garbagecron.php". Например, по крону. А вот команды для очистки всего кэша для запуска через cli нет.
Да и понять хочется, в чем проблема.. Может я смысл что такое "Устаревший кэш" в Joomla не догоняю?? Хотя пол-интернета уже перечитал, о нем вообще не много пишут, но везде говориться, что "Устаревший кэш" — это файлы, время создания которых меньше, чем текущее время минус время жизни кэша, вроде всё очевидно.
Пожалуйста, не предлагайте мне тупо чистить весь кэш, эта функция работает нормально, но не о ней разговор.
Меня интересует именно, работа опции "Очистить устаревший кэш"! Как она должна работать?