До 10%Рекомендуйте нас и получайте процент за каждого приведённого клиента

Безопасность магазина на Битрикс: OWASP на практике

Безопасность интернет-магазина на 1С-Битрикс: защита кастомного кода от XSS, SQL-инъекций, CSRF и IDOR

Интернет-магазин — это база с деньгами, персональными данными и историей заказов тысяч людей. Пока витрина работает на штатном ядре 1С-Битрикс, платформа закрывает большую часть угроз сама. Но как только появляются доработки — свой компонент личного кабинета, кастомный AJAX-контроллер, обработчик оформления заказа, экспорт в 1С — вместе с ними в проект приходят и уязвимости. По статистике именно кастомный код, а не ядро, чаще всего становится точкой входа для XSS, SQL-инъекций, CSRF и IDOR.

Ниже — практический разбор четырёх самых опасных для магазина классов уязвимостей из OWASP Top 10: как они выглядят в коде на 1С-Битрикс, чем именно грозят данным заказов и как их закрыть штатными средствами платформы. Это выжимка из наших проектов по аудиту и защите интернет-магазинов на 1С-Битрикс — с конкретным API, а не общими словами про «важность безопасности».

Коротко

  • Основной риск — не ядро, а кастомный код: компоненты, обработчики событий и AJAX-контроллеры под конкретный магазин.
  • XSS лечится экранированием вывода (htmlspecialcharsbx, HtmlFilter::encode), SQLi — ORM и параметризацией запросов.
  • CSRF закрывается сессионным токеном Битрикса: bitrix_sessid_post() в форме и check_bitrix_sessid() на сервере.
  • IDOR — самая частая утечка чужих заказов: всегда проверяйте владельца объекта на сервере, а не полагайтесь на «непубличность» ссылки.
  • Проактивный фильтр (WAF) — обязательный, но не единственный рубеж; безопасность начинается в коде.

Почему магазин на Битрикс — мишень для атак

1С-Битрикс — одна из самых распространённых платформ для интернет-магазинов в рунете. Массовость — это одновременно и плюс, и минус для безопасности. Плюс в том, что платформа зрелая: у неё есть выделенный модуль безопасности, регулярные обновления и большое сообщество. Минус в том, что типовые магазины на Битрикс — предсказуемая цель для автоматических сканеров, которые массово перебирают известные адреса компонентов, формы и параметры в поисках слабого места.

Важно понимать, что атакуют не «Битрикс вообще», а конкретную установку. И слабым звеном почти всегда оказывается то, что добавили поверх ядра: сторонний модуль из маркетплейса, скачанный «бесплатный» шаблон с закладкой, наспех написанный обработчик формы обратной связи, кастомная выгрузка заказов. Ядро Битрикса проходит аудит вендора, а доработки — нет, если только вы сами не заложили аудит в процесс разработки.

Цена ошибки для магазина выше, чем для контентного сайта. Здесь есть что красть и чем навредить: база заказов с ФИО, телефонами и адресами покупателей, история платежей, доступ к админке, возможность подменить реквизиты оплаты или внедрить скиммер, который тихо перехватывает данные карт на странице оформления. Одна незакрытая уязвимость превращается в утечку персональных данных со всеми последствиями по 152-ФЗ и в прямой репутационный ущерб.

Поэтому безопасность магазина — это не разовая «установка антивируса», а свойство, которое закладывается на уровне архитектуры и кода. Дальше мы пройдёмся по конкретным классам уязвимостей и покажем, как каждый из них выглядит и закрывается именно в 1С-Битрикс.

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

OWASP Top 10 применительно к 1С-Битрикс

OWASP Top 10 — это признанный в индустрии список самых критичных рисков веб-приложений, который поддерживает международное сообщество Open Web Application Security Project. Он не привязан к конкретной платформе, но отлично ложится на реалии интернет-магазина. Разберём, как основные пункты списка проявляются в проекте на 1С-Битрикс.

В этой статье мы подробно фокусируемся на четырёх классах, которые прямее всего угрожают данным заказов: XSS, SQLi, CSRF и IDOR. Остальные пункты — конфигурацию, компоненты, обновления — мы затрагиваем в разделе про реализацию и в смежных материалах. В частности, про безопасное обновление ядра и модулей есть отдельный разбор: обновление 1С-Битрикс без простоя магазина.

Поверхность атаки магазина Формы и поля Параметры URL AJAX-запросы Интеграции и API Кастомный код (компоненты, обработчики) XSS SQL-инъекция CSRF IDOR
Схема: пользовательский ввод из форм, URL, AJAX и интеграций проходит через кастомный код — и именно там необработанные данные превращаются в XSS, SQLi, CSRF или IDOR.

Модель угроз: где живут данные заказов

Прежде чем закрывать уязвимости, полезно понять, что именно мы защищаем и откуда к этому есть доступ. Данные заказов в 1С-Битрикс живут не в одном месте, и у каждого хранилища свой периметр.

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

Совет: составьте карту данных заказа — какие поля где хранятся, кто и через какие точки к ним обращается. Без такой карты легко забыть про «тихий» канал: например, про JSON-выгрузку заказов, которая отдаёт больше полей, чем показывает витрина.

XSS: межсайтовый скриптинг в кастомном коде

XSS (Cross-Site Scripting) — это внедрение чужого JavaScript-кода в страницу магазина. Возникает, когда пользовательский ввод выводится на страницу без экранирования. Классические места в магазине: отзывы о товаре, вопросы к товару, поле поиска (когда запрос отображается в заголовке «Вы искали…»), поля формы заказа, которые потом видит менеджер в админке, любые GET-параметры, попадающие в HTML.

Опасность XSS для магазина не в «всплывающем окошке alert», как в учебных примерах, а в тихой краже данных. Внедрённый скрипт может увести сессионные куки авторизованного покупателя или администратора, подменить реквизиты на странице оплаты, перехватить данные банковской карты (веб-скиммер), отправить содержимое формы на чужой сервер. Особенно опасен хранимый (stored) XSS: вредоносный код один раз сохраняется в базу — например, в отзыв — и срабатывает у каждого, кто открывает страницу, включая менеджера в админке.

Как закрыть. Единственное надёжное правило — экранировать любой вывод пользовательских данных в HTML. В 1С-Битрикс для этого есть штатные средства, и использовать нужно именно их, а не самописные замены:

Главный принцип — экранировать на выводе, а не на вводе. Данные хранятся в базе как есть, а обрабатываются в момент отображения в зависимости от контекста (HTML-тело, атрибут, JavaScript, URL). Один и тот же текст в разных контекстах экранируется по-разному, поэтому попытка «почистить» ввод один раз при сохранении почти всегда оставляет дыру.

Важно: проактивный фильтр Битрикса умеет вырезать активный HTML из входящих параметров, но полагаться только на него нельзя. Он не знает контекста вашего шаблона и может пропустить нестандартную полезную нагрузку. Экранирование на выводе — обязательная база, фильтр — дополнительный рубеж.
Злоумышленник пишет отзыв со скриптом База данных хранит текст как есть Жертва открывает страницу товара Без экранирования <script>steal()</script> скрипт выполняется кража сессии и данных htmlspecialcharsbx() &lt;script&gt;steal() выводится как текст скрипт не срабатывает
Схема: без экранирования сохранённый скрипт срабатывает у каждого посетителя; экранирование на выводе превращает его в безобидный текст.

SQL-инъекции: безопасная работа с базой

SQL-инъекция — это когда пользовательский ввод попадает в текст SQL-запроса и меняет его логику. Классический пример: разработчик собирает запрос строкой, подставляя в него параметр из URL без обработки. Злоумышленник передаёт вместо ожидаемого значения кусок SQL — и получает доступ ко всей базе: выгружает таблицу заказов с персональными данными, читает хэши паролей администраторов, а в тяжёлых случаях меняет данные.

В 1С-Битрикс сырой SQL нужен редко, и это хорошая новость. У платформы есть слой ORM (D7), который сам параметризует запросы и экранирует значения. Правильная иерархия подходов выглядит так:

  1. Используйте ORM и query-билдер. Выборки через \Bitrix\Main\Entity и getList() с фильтром-массивом безопасны по умолчанию: значения фильтра экранируются автоматически. Это основной способ работы с данными в современном коде.
  2. Для заказов — высокоуровневое API продаж. Работайте с заказами через \Bitrix\Sale\Order, а не прямыми запросами к таблицам. API сам следит за целостностью и правами.
  3. Если сырой запрос неизбежен — экранируйте. Пропускайте каждое значение через SqlHelper: $connection->getSqlHelper()->forSql($value) для строк и приведение типов ((int)$id) для чисел.
  4. Никогда не конкатенируйте ввод напрямую. Строка вида "WHERE ID = " . $_GET['id'] — прямая уязвимость, даже если «id всегда число».

Отдельная ловушка — фильтр в getList(). ORM экранирует значения, но имена полей и операторы вы задаёте сами. Если вы подставляете имя поля для сортировки или фильтрации из пользовательского ввода без белого списка, это тоже вектор инъекции. Правило: любое имя колонки, поле сортировки или направление (ASC/DESC), пришедшее от пользователя, проверяйте по заранее заданному списку допустимых значений.

ПодходБезопасностьКогда применять
ORM getList() с фильтром-массивомБезопасно по умолчаниюОсновной способ выборки данных
API \Bitrix\Sale\OrderБезопасно, следит за правамиЛюбая работа с заказами
SqlHelper->forSql() / quote()Безопасно при аккуратном примененииРедкие сырые запросы
Приведение типа (int)$idБезопасно для чиселЧисловые идентификаторы
Конкатенация строки запросаОпасноНе применять никогда

CSRF: подделка запросов и защита форм

CSRF (Cross-Site Request Forgery) — подделка межсайтовых запросов. Суть атаки: злоумышленник заставляет браузер авторизованного пользователя незаметно отправить запрос на ваш сайт. Пользователь заходит на сторонний сайт (или открывает письмо), там спрятана форма или картинка, которая шлёт запрос на ваш магазин. Браузер автоматически прикладывает куки авторизации — и сервер выполняет действие от имени жертвы: меняет пароль, оформляет заказ, отменяет заказ, привязывает чужую карту.

Защита строится на том, что сторонний сайт не знает секретного токена текущей сессии. В 1С-Битрикс этот механизм встроен и называется «защита от CSRF через bitrix_sessid». Работает он так:

  1. В форму добавляется токен. Функция bitrix_sessid_post() вставляет скрытое поле с сессионным идентификатором. Для ссылок и GET-запросов используется bitrix_sessid_get().
  2. На сервере токен проверяется. До выполнения любого изменяющего действия вызывается check_bitrix_sessid(). Если токен не совпадает или отсутствует — запрос отклоняется.
  3. Действия идут методом POST. Всё, что меняет состояние (оформление, отмена, смена профиля, добавление в избранное с побочными эффектами), выполняется через POST, а не GET. GET-ссылки не должны менять данные.

Многие штатные компоненты Битрикса уже используют этот механизм. Но как только вы пишете свою форму или AJAX-контроллер, ответственность за проверку токена ложится на вас. Типичная ошибка — сделать красивый AJAX-обработчик «отменить заказ», который принимает ID заказа и не проверяет ни токен, ни права. Это открывает сразу и CSRF, и IDOR.

В новых AJAX-контроллерах на базе \Bitrix\Main\Engine\Controller проверка сессионного токена (sessid) выполняется автоматически для действий, требующих защиты, — это ещё один довод использовать штатный слой контроллеров вместо самописных точек входа.

Проверка токена сессии Чужой сайт запрос без токена Форма магазина bitrix_sessid_post() Сервер: check_bitrix_sessid() Отклонён токен не совпал Выполнен токен верный
Схема: запрос со стороннего сайта не знает сессионного токена и отклоняется, а форма магазина с bitrix_sessid проходит проверку и выполняется.

IDOR: небезопасные ссылки на объекты

IDOR (Insecure Direct Object Reference) — небезопасная прямая ссылка на объект. Это самая частая и самая болезненная для магазина уязвимость. Механика простая: страница детали заказа доступна по адресу вида /personal/orders/?ID=10456. Пользователь смотрит свой заказ, потом из любопытства меняет ID в адресе на 10457 — и видит чужой заказ: ФИО, телефон, адрес доставки, состав покупки. Сервер отдал данные, потому что не проверил, что заказ 10457 принадлежит именно этому пользователю.

IDOR возникает везде, где объект идентифицируется предсказуемым значением (последовательный ID) и где проверка прав сделана «на глаз» или вынесена только на фронтенд. Особенно часто это встречается в самописных личных кабинетах, AJAX-обработчиках «повторить заказ», «скачать счёт», «посмотреть накладную» и в любых выгрузках документов по ссылке.

Как закрыть. Единственная надёжная защита — проверка владельца объекта на сервере при каждом обращении. Не «спрятать» ссылку, не сделать ID «сложным», а именно проверить право доступа:

Дополнительная мера — использовать непоследовательные, непредсказуемые идентификаторы (например, случайные токены доступа к документу вместо голого ID). Но это именно дополнение: без серверной проверки прав даже случайный токен рано или поздно утечёт через историю браузера, логи или реферер. Проверка владельца — обязательна, обфускация ID — приятное дополнение.

Контроль доступа к заказу Пользователь #12 ?ID=10457 Сервер Заказ 10457 USER_ID = 33 33 ≠ 12 сверка владельца 403 Запрещено чужой заказ Свой заказ — ок USER_ID = 12
Схема: даже угадав ID чужого заказа, пользователь не получит его данные — сервер сверяет владельца и возвращает 403 на попытку доступа к чужому объекту.

Уязвимости и защита: сводная таблица

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

УязвимостьКак проявляется в магазинеЧем грозитЗащита в 1С-Битрикс
XSSСкрипт в отзыве, поиске, параметре URLКража сессий, скиммер на оплатеЭкранирование вывода: htmlspecialcharsbx, HtmlFilter::encode
SQL-инъекцияВвод в сыром запросе к базеСлив всей базы заказов и паролейORM/D7, API продаж, SqlHelper, (int)$id
CSRFДействие от имени жертвы с чужого сайтаОтмена/подмена заказа, смена профиляbitrix_sessid_post() + check_bitrix_sessid()
IDORПодмена ID заказа в адресеУтечка чужих заказов и ПДнСерверная проверка владельца, IsAuthorized()

Защита данных заказов и персональных данных

Закрыть четыре класса уязвимостей — необходимо, но недостаточно. Данные заказов нужно защищать системно, потому что они содержат персональные данные и подпадают под 152-ФЗ. Здесь работает принцип минимизации: показывать, хранить и передавать только то, что действительно нужно, и только тем, кому положено.

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

Важно: утечка данных заказов — это не только штраф по 152-ФЗ, но и мгновенная потеря доверия покупателей. Один слив базы с телефонами и адресами наносит репутационный ущерб, который дороже любой доработки безопасности. Защита ПДн — инвестиция, а не расход.

Загрузка файлов и небезопасная десериализация

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

Загрузка файлов. Формы «прикрепить фото к отзыву», «загрузить документ», аватары в личном кабинете — потенциальная возможность залить на сервер исполняемый скрипт. Если проверять только расширение или доверять MIME-типу из запроса, злоумышленник загрузит PHP-файл под видом картинки и получит удалённое выполнение кода. Правила защиты: проверяйте реальный тип файла, а не заголовок; храните загрузки вне корня сайта или в каталоге с запретом на исполнение; переименовывайте файлы, не сохраняя оригинальное имя; ограничивайте размер и разрешённые типы белым списком. В Битриксе для работы с файлами используйте штатный CFile, который учитывает эти нюансы.

Небезопасная десериализация. Если код принимает от пользователя сериализованные данные и разворачивает их через unserialize(), это открывает путь к внедрению объектов и выполнению кода. Не десериализуйте недоверенный ввод. Для обмена данными используйте JSON (\Bitrix\Main\Web\Json), а не PHP-сериализацию. Это же касается вебхуков и интеграций — их полезную нагрузку тоже нельзя разворачивать вслепую.

Реализация в 1С-Битрикс: модуль и API

У платформы есть выделенный модуль «Проактивная защита» (модуль security), который закрывает часть рисков на уровне конфигурации, не требуя правки кода. Его настройки живут в разделе «Настройки → Проактивная защита» админки. Ключевые инструменты, которые стоит включить и настроить на боевом магазине:

На уровне кода опорные функции и классы, которые должны стать привычкой команды, такие:

ЗадачаИнструмент 1С-Битрикс
Экранировать вывод в HTMLhtmlspecialcharsbx() / \Bitrix\Main\Text\HtmlFilter::encode()
Экранировать вывод в JSCUtil::JSEscape() / \Bitrix\Main\Web\Json::encode()
Безопасная выборка из базыORM \Bitrix\Main\Entity, getList() с фильтром-массивом
Экранировать значение в сыром SQL$connection->getSqlHelper()->forSql()
Защита формы от CSRFbitrix_sessid_post() + check_bitrix_sessid()
Проверка прав и авторизации$USER->IsAuthorized(), $USER->GetID(), права модулей
Работа с заказами\Bitrix\Sale\Order
Безопасная работа с файламиCFile

Так выглядит раздел проактивной защиты в админке — схематично, чтобы понимать, где искать переключатели:

Настройки · Проактивная защита Проактивный фильтр (WAF) вкл Защита сессий вкл Контроль целостности вкл Двухфакторная авторизация вкл Уровень безопасности: высокий · журнал вторжений ведётся
Схема: базовый набор переключателей проактивной защиты. Реальные названия и состав зависят от версии платформы и редакции.

Как проверить магазин на уязвимости

Оценить безопасность магазина можно и без дорогого пентеста — с базовой самопроверки, которая отсекает большинство типовых проблем. Порядок действий такой:

  1. Инвентаризация кастомного кода. Соберите список всех доработок: свои компоненты, шаблоны, обработчики событий, AJAX-контроллеры, кастомные страницы, сторонние модули. Именно они — основная зона риска.
  2. Поиск сырых запросов и вывода. Пройдитесь по коду в поисках прямой конкатенации в SQL, вывода переменных без экранирования и приёма параметров без обработки. Это места будущих XSS и SQLi.
  3. Проверка форм на CSRF. Убедитесь, что все изменяющие данные формы и AJAX-действия проверяют сессионный токен и работают через POST.
  4. Тест на IDOR. Авторизуйтесь под тестовым пользователем и попробуйте открыть чужой заказ, документ, профиль, подменяя ID в адресе. Сервер должен возвращать отказ.
  5. Проверка конфигурации. Отключена отладка на бое, закрыты служебные адреса, включён проактивный фильтр, стоят актуальные обновления, у администраторов — двухфакторная авторизация.
  6. Ревизия прав и интеграций. Проверьте права ролей, токены REST и вебхуков, актуальность паролей интеграций. Лишние доступы отзовите.

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

Частые ошибки разработчиков

Мини-FAQ. Достаточно ли включить проактивный фильтр, чтобы магазин был защищён? Нет. Фильтр закрывает периметр от типовых атак, но не заменяет безопасный код: экранирование вывода, параметризацию запросов, проверку токенов и прав. Настоящая защита — это фильтр плюс дисциплина разработки.

Чек-лист безопасности

Сведём всё в практический список, по которому удобно принимать готовность магазина к запуску и проверять его периодически.

  1. Вывод экранируется. Все пользовательские данные выводятся через htmlspecialcharsbx / HtmlFilter::encode с учётом контекста (HTML, атрибут, JS).
  2. Запросы параметризованы. Работа с данными идёт через ORM и API продаж; сырых запросов с конкатенацией ввода нет.
  3. Формы защищены от CSRF. Изменяющие действия работают через POST и проверяют check_bitrix_sessid().
  4. Контроль доступа на сервере. Каждый доступ к заказу, документу, профилю сверяет владельца и авторизацию; IDOR закрыт.
  5. Проактивная защита включена. WAF, защита сессий, контроль целостности активны; уровень безопасности — не ниже стандартного.
  6. Двухфакторная авторизация. У всех администраторов и менеджеров с доступом к заказам включён второй фактор.
  7. Файлы и сериализация под контролем. Загрузки проверяются по реальному типу и хранятся без права исполнения; недоверенный ввод не десериализуется.
  8. Данные заказов защищены. HTTPS везде, минимум прав по ролям, чистые логи, защищённые бэкапы, журналирование доступа.
  9. Обновления актуальны. Ядро и модули обновлены, сторонние компоненты проверены; обновления ставятся по регламенту.
  10. Аудит проведён. Кастомный код проверен на XSS, SQLi, CSRF, IDOR; тест на подмену ID пройден.

Вывод

Безопасность магазина на 1С-Битрикс держится на двух опорах: включённой проактивной защите платформы и дисциплине разработки. Ядро закрывает базовые риски, но реальные бреши почти всегда живут в кастомном коде — там, где пользовательский ввод попадает в HTML, в SQL или в действие без проверки токена и прав. Закройте четыре ключевых класса — XSS, SQLi, CSRF, IDOR — экранированием вывода, параметризацией запросов, сессионным токеном и серверной проверкой владельца, защитите данные заказов по принципу минимальных привилегий — и магазин перестанет быть лёгкой мишенью. Безопасность стоит закладывать сразу, а не после первого инцидента.

Частые вопросы

С чего начать проверку безопасности магазина на 1С-Битрикс?

Начните с двух вещей: включите модуль «Проактивная защита» (проактивный фильтр, он же WAF) и проведите инвентаризацию кастомного кода — компонентов, обработчиков событий, AJAX-контроллеров и своих страниц. Штатный код ядра обычно защищён, а вот доработки под конкретный магазин чаще всего и становятся точкой входа. После этого пройдитесь по OWASP Top 10: XSS, SQL-инъекции, CSRF, IDOR и контроль доступа к данным заказов.

Проактивный фильтр Битрикса защищает от всех уязвимостей?

Нет. Проактивный фильтр (WAF) — это защита периметра: он отсекает типовые вредоносные шаблоны в параметрах запроса и снижает риск массовых автоматических атак. Но он не заменяет безопасный код. Если ваш обработчик подставляет пользовательский ввод прямо в SQL-запрос или выводит его в HTML без экранирования, фильтр может не распознать нестандартную атаку. Правильный подход — фильтр плюс безопасная разработка на уровне кода.

Как безопасно писать SQL-запросы в 1С-Битрикс?

Лучший вариант — не писать сырой SQL вообще, а использовать ORM (D7, \Bitrix\Main\Entity и query-билдер): он сам экранирует значения и параметризует запросы. Если сырой запрос неизбежен, экранируйте каждое значение через методы SqlHelper (forSql, quote) или используйте подготовленные выражения с привязкой параметров. Никогда не склеивайте строку запроса конкатенацией с необработанным вводом пользователя.

Что такое IDOR и почему он опасен для интернет-магазина?

IDOR (Insecure Direct Object Reference) — это когда объект (заказ, документ, профиль) доступен по прямой ссылке с идентификатором, а сервер не проверяет, имеет ли текущий пользователь право его смотреть. В магазине это грозит утечкой чужих заказов: подставив в URL другой ID заказа, злоумышленник видит адрес, телефон и состав покупки другого клиента. Защита — обязательная проверка владельца объекта на сервере при каждом обращении.

Как защитить формы магазина от CSRF?

В 1С-Битрикс для этого есть встроенный механизм сессионного токена. Добавляйте в формы, меняющие данные, поле bitrix_sessid_post(), а на сервере до выполнения действия проверяйте check_bitrix_sessid(). Токен привязан к сессии пользователя, поэтому сторонний сайт не сможет подделать валидный запрос. Все действия, изменяющие состояние (оформление, отмена заказа, смена профиля), должны идти методом POST и проверять токен.

Нужно ли шифровать персональные данные покупателей?

Данные заказов содержат персональные данные (ФИО, телефон, адрес), а значит подпадают под 152-ФЗ. Хранить их нужно в защищённой базе, ограничивать доступ по ролям, передавать только по HTTPS и не выводить лишнего в логи и уведомления. Полное шифрование всей базы избыточно, но чувствительные поля и резервные копии стоит защищать, а доступ администраторов — журналировать через модуль security и контроль активности.

Поделиться:

Нужен аудит безопасности магазина на 1С-Битрикс?

Проверим кастомный код на XSS, SQL-инъекции, CSRF и IDOR, закроем найденные уязвимости, настроим проактивную защиту и контроль доступа к данным заказов. Дадим отчёт с приоритетами и планом.

Услуга «Безопасность»

Игорь Воскресенский

Основатель студии B2Bsite. С 2014 года команда разрабатывает, поддерживает и защищает интернет-магазины и корпоративные сайты на 1С-Битрикс: проводит аудит кода, закрывает уязвимости, настраивает проактивную защиту и безопасные интеграции для среднего и крупного бизнеса.

← Все статьи блога