Как стать автором
Обновить
216.44

Безопасная кастомизация: чек-лист для правильной доработки коробочных продуктов 1С-Битрикс

Время на прочтение7 мин
Количество просмотров1.6K

Мы поддерживаем кастомизацию наших продуктов и всячески помогаем в этом разработчикам: у нас есть курсы, гайды, маркетплейс решений и т.д. При этом мы выступаем за безопасность и правильный подход, за то, чтобы предусмотреть все риски и постараться избежать их. Непродуманная кастомизация вызывает массу проблем. Это и конфликты версий, и нестабильная работа продукта, и дыры в безопасности. В результате мы, например, наблюдаем волну взломов сайтов, владельцы которых не обновили вовремя модули сторонних разработчиков — хакеры массово эксплуатируют одни и те же уязвимости, хотя сами разработчики уже давно обновили свои модули и выпустили патчеры для более старых версий. Но халатность владельцев приводит к таким результатам. 

В случае утечки данных отвечает не только бизнес — деньгами и репутацией, но и непосредственно администраторы сайта, по закону N 152-ФЗ «О персональных данных» (статья 19). С 30 мая 2025 года, штраф для них за утечку персональных данных составит от 200 тыс. до 400 тыс. рублей (Федеральный закон от 30.11.2024 N 420-ФЗ).

Мы собрали чек-лист и рекомендации для безопасной кастомизации коробочных решений. Он поможет правильно кастомизировать продукты 1С-Битрикс:

  • устанавливать обновления без потери изменений,

  • избегать конфликтов с новыми версиями продукта,

  • обеспечивать стабильную и безопасную работу сайта.

Итак, вот наш чек-лист

Шаг 1. Проверьте знания разработчиков

Шаг 2. Подготовьте рабочую среду перед кастомизацией

Шаг 3. Разместите изменения отдельно от системных файлов

Шаг 4. Подключайте готовые модули для расширения функциональности

Шаг 5. Выберите подходящие инструменты кастомизации

Шаг 6. Убедитесь, что не сделали ничего лишнего

Шаг 7. Проверьте код на защиту от основных уязвимостей

Дополнительные рекомендации

Шаг 1. Проверьте знания разработчиков

Убедитесь, что у ваших сотрудников или сторонних специалистов, которые будут работать на проекте, достаточно знаний и опыта. Мы рекомендуем всем Битрикс-разработчикам пройти курсы по разработке на платформе Bitrix Framework, чтобы лучше понимать возможности платформы и избежать ошибок. Проверьте, что у ваших специалистов есть сертификат о прохождении соответствующего обучения.

Учебные онлайн-курсы 

Академия Битрикс24

Шаг 2. Подготовьте рабочую среду перед кастомизацией

  1. Регулярно создавайте резервные копии, чтобы защититься от потери данных в случае ошибок. Мы рекомендуем делать копии не реже одного раза в день. Рекомендации по созданию и хранению резервных копий собраны здесь.

  2. Используйте установку для разработки. Настройте отдельную среду для разработки. Это предотвращает случайное выполнение опасных действий на боевом сайте и упрощает отладку.

  3. Проверяйте доработки на тестовой копии. Переносите их на боевой сайт только после тщательного тестирования.

Шаг 3. Разместите изменения отдельно от системных файлов

Изменения рекомендуем хранить в папке /local/. Это обеспечит четкое разделение между системными файлами и кастомизацией, а значит упростит поддержку, масштабирование и обновление системы. При обновлении системы папка /local/ не перезаписывается, поэтому ваши доработки останутся нетронутыми. 

Подробнее в статье Папка /local.

Шаг 4. Подключайте готовые модули для расширения функциональности

Регулярно обновляйте все модули, которые вы подключаете к проекту. Они могут оказаться уязвимыми спустя несколько лет после создания и становятся опасными для сайта. Наш Центр мониторинга инцидентов регулярно выявляет такие «дыры», поэтому мы создали реестр решений сторонних разработчиков с указанием уязвимых модулей и рекомендациями по их устранению. 

Обновления — это не формальность, а способ избежать реальных рисков. Чтобы сайт работал стабильно, а персональные данные пользователей не подвергались угрозам, кастомизируйте коробочные продукты на платформе Bitrix Framework правильно и регулярно устанавливайте обновления.

Шаг 5. Выберите подходящие инструменты кастомизации

В наших продуктах есть инструменты для кастомизации под любые задачи: от no-code решений до работы с API и кодом Bitrix Framework. Выберите подходящий инструмент в зависимости от ваших целей и уровня сложности проекта.

Настройка без программирования: No-code и Low-code инструменты

No-code инструменты позволяют настраивать и автоматизировать процессы без написания кода, Low-code — требуют минимального программирования. Решения, реализованные такими инструментами, не требуют дополнительной поддержки.

Роботы и триггеры есть в CRM, задачах, подписи и цифровых рабочих местах. Роботы выполняют рутинные действия: создают задачи, отправляют письма, уведомления и так далее. Триггеры отслеживают действия и изменения в элементах: просмотр письма, оплату счета, изменение статуса задачи и другие.

С помощью смарт-процессов можно создать собственные сценарии работы в CRM, например автоматизировать закупки или работу с рекламациями.

Бизнес-процессы автоматизируют повседневные задачи, такие как утверждение документов в компании или общение с клиентами. Можно настроить автоматическое согласование счетов, отправку уведомлений клиентам о статусе их заказов или автоматическое создание задач для сотрудников.

Цифровые рабочие места состоят из одного или нескольких смарт-процессов, которые не привязаны к CRM. В каждом из них есть свои карточки, воронки, стадии канбана, роботы и другие функции. С помощью смарт-процессов можно автоматизировать работу любого отдела, например, HR или бухгалтерии, — создать для них единое рабочее пространство, со своими настройками и инструментами.

Автоматизация нестандартных задач: пользовательские действия в бизнес-процессах

Создавайте пользовательские действия, если базовых возможностей бизнес-процессов недостаточно. Используйте этот инструмент, чтобы автоматизировать уникальные задачи, например интеграцию с внешними системами, выполнение сложных расчетов или отправку уведомлений через нестандартные каналы.

Как создать пользовательские действия

Интеграции с внешними сервисами: REST API

Битрикс24 предлагает разработчикам инструменты для создания интеграций, автоматизации рабочих процессов и кастомизации пользовательских сценариев через REST API.

Документация REST API

Новая логика существующих процессов: обработчики событий

Если необходимо повлиять на ход выполнения какой-нибудь API функции, не меняя ее (чтобы не потерять изменения при очередном обновлении), используйте обработчики событий. Они добавляют дополнительную логику в существующие процессы и расширяют функционал, реагируя на события платформы.

Документация о событиях

Фоновые задачи: подключаем агентов

Для периодических операций, которые не должны мешать основному потоку работы, используйте агентов. Они выполняют задачи в фоновом режиме по расписанию или при определенных условиях. 

Агенты и их использование

Нестандартные данные: собственные типы полей

Если нужно добавить специализированные данные и настраиваемую логику обработки, создавайте пользовательские типы полей, чтобы расширить возможности стандартных объектов.

Класс пользовательского поля

Изменение внешнего вида и поведения сайта: CSS и JavaScript 

Подключайте стили и скрипты через Bitrix\Main\Page\Asset, чтобы избежать конфликтов.

Обратите внимание, что в директории bitrix расположены только те экстеншны, которые поставляются с продуктами 1С-Битрикс: Управление Сайтом и Битрикс24. Клиентские расширения должны располагаться в папке local.

О способе организации JS и CSS кода читайте в статье Расширения

Удобное управление: кастомизируйте административную часть 

Можно менять структуру меню, добавлять новые страницы, настраивать формы.

Кастомизация административной части

Вывод данных в дизайне сайта или нестандартном виде: адаптация шаблонов и компонентов 

Штатный шаблон компонента чаще всего модифицируют в двух случаях: когда нужно привести форму вывода данных в соответствие с дизайном сайта и когда требуется реализовать вывод данных в нестандартном виде. 

Обратите внимание, шаблоны корпоративного портала Битрикс24 запрещено кастомизировать! Технически можно скопировать шаблон, изменить его и использовать, но в этом случае вы потеряете обратную совместимость. 

Кастомизация шаблонов компонентов

Стандартные компоненты можно кастомизировать, чтобы изменить существующий функционал или добавить новый. Для этого стандартный компонент копируется в собственное пространство имен и уже в нем меняется логика его работы.

Кастомизация компонентов

Уникальный функционал: собственные компоненты и модули

Собственные компоненты и модули — это способ организовано добавлять новый функционал в систему, когда другие способы не подходят.

Фактически, свой компонент нужно писать лишь тогда, когда нужен абсолютно новый функционал для сайта. Если учесть тот факт, что состав стандартных компонентов довольно большой, то в большинстве случаев написание новых и не требуется. Достаточно расширить функционал уже имеющихся.

Создание компонентов

Собственные модули стоит создавать для кода, который часто используется повторно. Это сократит время на поиск ошибок и отладку — их не придется искать во всех проектах, где этот код используется. Готовые модули лучше разместить на маркетплейсе, чтобы потом все, кто их установил, получали обновления.

Создание собственных модулей

Шаг 6. Убедитесь, что не сделали ничего лишнего

Обратите внимание на запрещенные и нежелательные действия с ядром системы

Не изменяйте файлы ядра системы в папках:

  1. /bitrix/modules/

  2. /bitrix/components/bitrix/

  3. /bitrix/activities/bitrix/

  4. /bitrix/blocks/bitrix/

  5. /bitrix/gadgets/bitrix/

  6. /bitrix/wizards/bitrix/

  7. /bitrix/routes/

  8. /bitrix/js/

Изменение файлов ядра влечет следующие последствия: 

  • вы рискуете потерять работоспособность всей системы,

  • теряете изменения после обновления,

  • лишаетесь права на техническую поддержку.

Подробнее в статье Основные правила работы с Bitrix Framework.

Шаг 7. Проверьте код на защиту от основных уязвимостей 

  1. Не пишите прямые SQL-запросы к базе данных. Используйте документированное API продукта. Прямые SQL-запросы обходят встроенные механизмы безопасности и валидации. Это может привести к уязвимости системы и несогласованности данных.

  2. Не добавляйте HTML-код в PHP-логику. Разделяйте логику и представление. HTML-код должен находиться в шаблонах, а не в PHP-файлах.

Подробнее о защите от основных уязвимостей в цикле статей «Как сделать безопасным код сайта на Битрикс»

Дополнительные рекомендации

  1. Используйте систему контроля версий. Это поможет отслеживать изменения и восстанавливать их при необходимости. Убедитесь, что к файлам репозитория нет доступа через веб-сервер.

  2. Защищайте файлы от прямого доступа. Добавьте следующий код в начало всех файлов, которые не должны выполняться напрямую:

<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {die();}

?>

  1. Регулярно тестируйте изменения. Перед внедрением доработок на боевой сайт тестируйте их в изолированной среде. Это помогает выявить возможные ошибки и убедиться в корректности работы системы.

  2. Используйте кеширование. Оптимизируйте производительность с помощью эффективного использования кэширования.

Теги:
Хабы:
+8
Комментарии4

Полезные ссылки

Сложить два числа-гиганта: как я прошел квест на собеседовании в Бигтех

Время на прочтение3 мин
Количество просмотров25K
Всего голосов 34: ↑22 и ↓12+15
Комментарии172

Как сделать безопасным код сайта на Битрикс: шпаргалка по основным уязвимостям

Время на прочтение7 мин
Количество просмотров4.1K
Всего голосов 19: ↑18 и ↓1+19
Комментарии3

Из веб-тестировщиков в мобильные: инсайты для тех, кто задумался о переходе

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.9K
Всего голосов 16: ↑15 и ↓1+15
Комментарии17

Информация

Сайт
www.bitrix24.ru
Дата регистрации
Дата основания
1998
Численность
501–1 000 человек
Местоположение
Россия