Безопасность и продакшн

Пошаговые рекомендации по безопасному развёртыванию и эксплуатации.

Минимальные требования

Конфигурация окружения

Content Security Policy (CSP)

Включена CSP-политика в конфиге (см. конфигурацию). Разрешены внешние стили/картинки и data URI. Для платежных провайдеров также разрешены form-action на их домены:

Content-Security-Policy: 
default-src 'self';
base-uri 'self';
frame-ancestors 'self';
form-action 'self' https://unitpay.money https://unitpay.ru https://yoomoney.ru https://pay.freekassa.ru https://enot.io;
img-src 'self' data: https:;
style-src 'self' 'unsafe-inline' https:;
font-src 'self' data: https:;
script-src 'self' 'unsafe-inline' https:;
connect-src 'self' https:;

При добавлении новых платежных провайдеров и CDN проверьте домены на соответствие CSP. Иначе браузер может блокировать формы/скрипты платежей.

Безопасный доступ к константам

В шаблонах и логике проекта используйте безопасные проверки констант, чтобы исключить ошибки и предупреждения статического анализа:

if (defined('NAME') && constant('NAME')) { /* ... */ }

Флаги включения платежных провайдеров сохраняются в config/local.php и по умолчанию равны false в config/config.php. Такой подход предотвращает падения шаблонов на новых инсталляциях без настроек.

Безопасность роутинга и файлов

UI: фон и формы

Доступ к админке

RCON (если Rust сервер и сайт на разных машинах)

Логирование и наблюдаемость

Кэширование и производительность

Процедуры на проде

Checklist релиза