Как подключить ядро 1С-Битрикс в служебном PHP-скрипте
Когда использовать header.php, prolog_before.php и epilog_after.php, какие константы определить и как защитить служебный endpoint.
Системные требования
Нужны тестовая копия проекта, доступ разработчика или администратора и резервная копия перед изменением рабочего кода.
Смотреть системные требования1. Выберите полный или служебный пролог
Для обычной публичной страницы используйте /bitrix/header.php и /bitrix/footer.php: они подключают ядро и визуальную часть шаблона.
Для JSON, cron-обработчика или технической точки без оформления используют служебные части prolog_before.php и при необходимости epilog_after.php.
2. Подключите ядро корректно
Базовый служебный скрипт:
<?php
require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php";
use Bitrix\Main\Loader;
Loader::includeModule("iblock");Путь строится от DOCUMENT_ROOT, чтобы скрипт одинаково работал в разных каталогах сайта.
Совет
Файл с prolog_before.php — это полноценная точка входа в проект. Он не становится безопасным автоматически: проверяйте авторизацию, права, метод запроса и CSRF.
3. Определите режим до пролога
Константы, меняющие режим ядра, задаются до подключения пролога. Например, для фонового скрипта могут применяться NO_KEEP_STATISTIC, NOT_CHECK_PERMISSIONS или BX_CRONTAB.
NOT_CHECK_PERMISSIONS отключает часть проверок — используйте её только в закрытом серверном сценарии и выполняйте собственную авторизацию.
4. Защитите HTTP-endpoint
Для endpoint проверьте метод HTTP, сессию пользователя, право на операцию и CSRF-токен. JSON возвращайте с корректным Content-Type и единым форматом ошибок.
Не размещайте секретные служебные скрипты в публичном каталоге без защиты только потому, что имя файла «сложное».
5. Завершите выполнение и тест
Для полного жизненного цикла подключите epilog_after.php, если сценарию нужны завершающие обработчики системы. В CLI установите корректный DOCUMENT_ROOT до пролога.
Проверьте скрипт под обычным пользователем, без сессии, с неверным методом и повторным запросом.
Была ли эта статья полезной?
Спасибо за ваш отзыв!