Настройки сервера и Joomla, которые не входят в компонент, но влияют на безопасность и SEO магазина (по итогам аудитов 2026-10-13: AUDIT_SECURITY_2026-10-13.md, AUDIT_SEO_2026-10-13.md). Тестовый стенд намеренно настроен иначе (отладка, HTTP, без сжатия).
Joomla
- Глобальная конфигурация: Отладка системы — Нет, Отчёт об ошибках — Нет (или «Простой»): иначе панель отладки видна анонимам, а ошибки показывают пути и SQL.
- Включить ЧПУ и перезапись URL (
htaccess.txt→.htaccess), убратьindex.phpиз адресов (иначе каждый адрес живёт и сindex.php, и без; задайте 301). - Cookie: «Принудительный HTTPS — весь сайт», флаги сессии
Secure/HttpOnly/SameSite(глобальная конфигурация → Система → Сессия). - В настройках магазина: «Тестовая оплата» (песочница) снять с публикации (в админке при публикации показывается предупреждение; плагин при установке не включается).
- Настройки → Заказы: «Привязывать гостевые заказы» — «Только по ссылке из письма» (по умолчанию); режимы по e-mail небезопасны.
- Настройки → Оформление: лимиты «Заказов с одного адреса в час» и «на один e-mail в час» (по умолчанию 10 и 3); за обратным прокси веб-сервер должен передавать реальный адрес клиента в
REMOTE_ADDR(mod_remoteip/real_ip), иначе лимит считается по адресу прокси.
Веб-сервер
- Редирект
http://→https://(301) и заголовокStrict-Transport-Security. - Сжатие ответов (gzip/brotli) для HTML, CSS, JS, JSON, SVG.
- Кэш статики:
Cache-Control: public, max-age=31536000, immutableдля/media/,/images/(версионированные имена) и шрифтов. - Заголовки:
X-Content-Type-Options: nosniff(JSON-ответы магазина уже его отдают),Referrer-Policy: strict-origin-when-cross-origin,X-Frame-Options: SAMEORIGINили CSPframe-ancestors; убратьX-Powered-Byи версию вServer. - Закрыть от скачивания
.htaccess,*.sql,*.ini-файлы настроек и каталогadministrator/components/*/sql/(на Apache делает.htaccessJoomla; на nginx добавьтеlocation ~* \.(sql|htaccess)$ { deny all; }). - Загрузчик изображений магазина защищён файлами
.htaccess; на nginx (и Apache безAllowOverride) выполнение PHP вimages/dharmashop/запретите правилом сервера. - Ограничение частоты запросов на уровне сервера к
index.php?option=com_dharmashop&task=…(поиск, оформление, доставка) — дополнение к внутренним лимитам.
Проверка после запуска
curl -sI https://<сайт>/— 200, HSTS,nosniff, безX-Powered-By;curl -sI http://<сайт>/— 301 на https.- Страница с
?start=0отдаёт 301 на чистый адрес,?start=<за пределами>— 404. - Нет
Set-Cookie: dharmashop_favoritesна страницах без действий с избранным (проверка публичного кэширования). - В админке «Способы оплаты» нет предупреждения о песочнице.
- Валидаторы разметки (Rich Results Test / Schema Markup Validator) на карточке товара, категории и посадочной странице.