Комментарии 2
Что касается Joomla - почти перечисленные задачи по защите должны решаться не средствами PHP, а средствами сервера, ещё до начала работы собственно PHP.
Установка всяких разных фаерволов неизбежно приведёт к тормозам на сайте и добавит ещё потенциальных дыр. Особенно учитывая то, что подавляющее большинство сайтов к сожалению используют либо только бесплатные, либо варёзные (пиратские) версии расширений. А они тоже могут содержать в себе дыры и бэкдоры.
Третий способ защиты от спама и ботов — капча.
Капча умными ботами прекрасно пробивается. Тем более, что уже больше полугода активно нанимают людей на ботов, а может и ещё раньше начали. От спам регистраций помогает бесплатный компонент отечественной разработки "Жимолость". А одной из самых защищённых от ботов форм обратной связи показал себя плагин Radical Form.
Двухфакторная аутентификация в Joomla есть из коробки.
Защищать и восстанавливать важные файлы
В Joomla 4 и Joomla 5 есть встроенный функционал переустановки файлов ядра. Идём в Система - Обновление - Joomla, нажимаем проверить обновления:

Если обновлений не найдено, то появится кнопка "Переустановить файлы".

В Joomla 5.1 в систему обновлений внедрён TUF (The Update Framework), что обеспечивает получение файлов обновлений из надёжного доверенного источника.
Также в Joomla 4+ есть штатный плагин HTTP Headers, который позволяет настроить политики CORS и сделать сайт безопаснее. На Хабре был перевод статьи в двух частях:
Для защиты входа в админку Joomla так же не нужно ставить кучу плагинов. Читаем статью Как изменить название папки administrator в Joomla?
Сохранять информацию о подозрительных событиях
В Joomla это коробочный функционал. Также есть логи сервера.

Использую плагин Cerber для защиты WordPress
Как выбрать плагин для защиты сайта, если вы начинающий веб-мастер