СезонГотовим магазин к высокому сезону и Чёрной пятнице: скорость, нагрузка, акции

Безопасность REST и вебхуков в 1С-Битрикс

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

REST API и вебхуки — это двери, через которые в ваш магазин на 1С-Битрикс приходят заказы из мобильного приложения, платежи от банка, статусы доставки от службы логистики и данные из 1С. Пока эти двери открыты только «своим», всё хорошо. Но токен, вшитый в URL вебхука, — это по сути логин и пароль в одной строке: если он утёк в лог, в репозиторий или в скриншот, злоумышленник получает те же права, что и легитимная интеграция. А необработанный вебхук от неизвестного отправителя способен создать фальшивый оплаченный заказ или изменить остатки.

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

Коротко

  • Выдавайте каждому интегратору отдельный токен с минимальным набором прав — один вебхук на одну задачу.
  • Подписывайте тело запроса HMAC-SHA256 и проверяйте подпись до обработки данных.
  • Добавляйте метку времени и идентификатор события — это защита от повторной отправки (replay) и основа идемпотентности.
  • Ограничивайте частоту обращений (rate limiting) по токену, IP и методу; при превышении отдавайте 429.
  • Валидируйте всё входящее по белым спискам, храните секреты вне веб-корня и логируйте обращения для аудита.

Модель угроз: что атакуют в REST и вебхуках

Прежде чем ставить замки, полезно понять, откуда именно приходят взломщики. Безопасность API — это не один «главный» механизм, а набор мер против конкретных угроз. Если держать модель угроз в голове, становится ясно, зачем нужна каждая защита и что она закрывает.

Основные векторы атак на REST-эндпойнты и вебхуки магазина на 1С-Битрикс выглядят так:

Каждой из этих угроз соответствует своя мера защиты, и дальше в статье мы пройдём по ним по порядку. Важно понимать, что меры работают в связке: подпись без метки времени не спасает от повтора, а валидация без ограничения частоты не спасает от перебора. Безопасность API — это слоёная оборона, где пробитие одного слоя не должно означать полный доступ.

Важно: вебхук с полными правами (scope=* или эквивалент), вшитый в клиентское приложение или в публичный фронтенд, — это утечка, ждущая своего часа. Токен, который видит браузер или мобильный клиент, считайте скомпрометированным по умолчанию.
Внешний сервис и злоумышленник TLS HTTPS Подпись HMAC Лимит rate Валидация данных Ядро Битрикс Каждый слой отсекает свою угрозу: транспорт, подделку, перебор, инъекции
Схема: запрос от внешнего сервиса проходит слои защиты — TLS, проверку подписи, ограничение частоты и валидацию — прежде чем дойти до ядра Битрикса.

Вебхуки в 1С-Битрикс: входящие и исходящие

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

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

Отдельно стоит REST через OAuth-приложение — это уже не статический токен в URL, а полноценный протокол авторизации с областями доступа (scope), access- и refresh-токенами. Мы сравним подходы в разделе про выбор между вебхуком и приложением, а глубокое устройство самого REST разобрано в отдельном материале — REST API в 1С-Битрикс: интеграции, вебхуки и приложения.

Важно: входящий и исходящий вебхуки часто путают в настройках, и это приводит к дырам. Проверьте, что для сценария «нас уведомляют» стоит обработчик с проверкой подписи, а не открытый эндпойнт, который слепо доверяет любому POST-запросу.

Токены и права: принцип наименьших привилегий

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

Практические правила выдачи токенов:

  1. Один вебхук — одна задача. Интеграции с 1С нужен обмен каталогом и заказами, а сервису рассылок — только чтение контактов. Не создавайте один «универсальный» вебхук с полным набором прав на всех.
  2. Минимальный набор методов. В настройках вебхука отмечайте только те группы методов (scope), которые реально используются: catalog, sale, crm — по отдельности, а не всё сразу.
  3. Отдельный токен на каждого контрагента. Если с API работают несколько внешних систем, у каждой должен быть свой токен. Так при компрометации вы отзываете один ключ, не ломая остальные интеграции.
  4. Ограничение по IP. Там, где источник запросов известен и статичен, добавьте белый список IP-адресов на уровне веб-сервера или приложения. Токен, пришедший с чужого адреса, отклоняйте.
  5. Срок жизни и ротация. Заложите возможность плановой смены токена. Долгоживущий ключ, который никто ни разу не менял, — кандидат на утечку.

Отдельно про права на объекты. Даже корректно ограниченный по методам токен может стать инструментом атаки IDOR, если обработчик не проверяет, что интеграция имеет право работать именно с этим заказом или пользователем. Проверка прав на объект — это уже уровень бизнес-логики: недостаточно спросить «есть ли у токена метод sale.order.get», нужно ещё убедиться, что запрашиваемый заказ принадлежит зоне ответственности данной интеграции.

Плохо: один токен на всё Токен: scope = * catalog · sale · crm · user · ... Утёк — потеряли всё Хорошо: узкие токены 1С → catalog, sale Рассылки → crm.read Доставка → sale.status Утёк один — отозвали один
Схема: вместо одного токена с полными правами — набор узких токенов по задачам; компрометация одного не затрагивает остальные интеграции.

Подписи вебхуков: HMAC и целостность

Подпись отвечает на два вопроса приёмника: «запрос действительно от доверенного отправителя?» и «данные не изменились по пути?». Стандартный механизм для этого — HMAC (hash-based message authentication code): отправитель и получатель знают общий секрет, отправитель считает хеш от тела запроса с этим секретом и кладёт результат в заголовок, а получатель повторяет вычисление и сравнивает.

Ключевые свойства правильной подписи:

На стороне Битрикса, отправляющего исходящий вебхук, подпись формируется так:

<?php
// Отправитель (Битрикс): подписываем тело исходящего вебхука
$payload = json_encode($event, JSON_UNESCAPED_UNICODE);
$ts      = (string) time();
$secret  = getenv('WEBHOOK_SECRET');           // секрет вне кода

$signature = hash_hmac('sha256', $ts . '.' . $payload, $secret);

$headers = [
    'Content-Type: application/json',
    'X-Webhook-Timestamp: ' . $ts,
    'X-Webhook-Signature: ' . $signature,
];

А принимающая сторона проверяет подпись до любой обработки данных:

<?php
// Приёмник: проверяем подпись прежде, чем доверять данным
$raw = file_get_contents('php://input');
$ts  = $_SERVER['HTTP_X_WEBHOOK_TIMESTAMP'] ?? '';
$got = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';

$expected = hash_hmac('sha256', $ts . '.' . $raw, WEBHOOK_SECRET);

if (!hash_equals($expected, $got)) {
    http_response_code(401);
    exit('bad signature');
}
// подпись верна — теперь можно валидировать и обрабатывать

Обратите внимание: в подпись включена метка времени $ts. Это не случайно — она нужна для защиты от повторов, о которой следующий раздел. Сама по себе подпись гарантирует подлинность и целостность, но не мешает злоумышленнику переслать однажды перехваченный корректный запрос ещё раз.

Метка времени и защита от повторов

Представьте: злоумышленник перехватил (или ваш же сервис по ошибке продублировал) валидный, корректно подписанный вебхук «оплата заказа №100 прошла». Если обработчик проверяет только подпись, повторная отправка этого же запроса пройдёт проверку — подпись-то настоящая. Результатом может стать повторное подтверждение оплаты, дубль отгрузки, повторное начисление бонусов.

Защита строится на двух элементах, которые включаются в подписываемую часть запроса:

<?php
// Приёмник: отсекаем старые и повторные запросы
$ts      = (int)($_SERVER['HTTP_X_WEBHOOK_TIMESTAMP'] ?? 0);
$eventId = $_SERVER['HTTP_X_WEBHOOK_ID'] ?? '';

if (abs(time() - $ts) > 300) {           // окно 5 минут
    http_response_code(408);
    exit('stale');
}
if (event_already_seen($eventId)) {       // проверка в кэше/БД
    http_response_code(200);              // повтор — отвечаем ОК, но не обрабатываем
    exit('duplicate');
}
event_remember($eventId, 3600);           // запоминаем на час

Такой подход тесно связан с идемпотентностью, к которой мы вернёмся ниже: даже если внешний сервис из-за таймаута решит повторить доставку вебхука (а надёжные сервисы так и делают), ваш обработчик выполнит операцию только один раз. Тема надёжной доставки и повторов в интеграциях подробно разобрана в статье API, очереди и надёжность интеграций в Битрикс.

Важно: отвечать на дубль кодом 200, а не ошибкой, — осознанное решение. Если вернуть ошибку, добросовестный отправитель продолжит ретраить «неудавшийся» вебхук. Код 200 без повторной обработки говорит ему «принято» и останавливает лавину повторов.

Ограничение частоты (rate limiting)

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

Разумная стратегия — многоуровневый лимит, где каждый уровень закрывает свой класс проблем:

УровеньГде применяетсяЧто ограничивает
Сеть / reverse-proxyNginx, Cloudflare, балансировщикЗапросы с одного IP, защита от грубого флуда
Токен / интеграцияОбработчик RESTОбращения на один токен в скользящем окне
Метод / эндпойнтОбработчик методаДорогие операции (импорт, отчёты) отдельно и строже
Штатные лимиты REST БитриксаЯдро платформыЧисло запросов и «стоимость» операций к облаку/self-hosted

Реализовать счётчик в скользящем окне удобно поверх кэша Битрикса или Redis — по ключу «токен + минута». При превышении лимита возвращайте корректный ответ, а не просто рвите соединение:

<?php
// Простой лимит по токену в скользящем окне (псевдо-хранилище $cache)
$key   = 'rl:' . $tokenId . ':' . floor(time() / 60); // окно 1 минута
$count = (int)$cache->get($key);

if ($count >= 120) {                    // не более 120 запросов в минуту
    header('Retry-After: 60');
    http_response_code(429);           // Too Many Requests
    exit('rate limit');
}
$cache->set($key, $count + 1, 120);

Код 429 Too Many Requests с заголовком Retry-After — это правильный, «вежливый» способ сказать клиенту, когда можно вернуться. Добросовестные интеграции его понимают и снижают темп. Для дорогих операций (массовый импорт каталога, генерация отчёта) задавайте отдельный, более строгий лимит, потому что одна такая операция стоит как сотни обычных чтений.

Совет: различайте лимит и throttling полезной нагрузки. Помимо числа запросов, ограничивайте размер тела (максимальное число элементов в батче, максимальный вес payload). Иначе клиент обойдёт лимит по количеству, прислав один, но гигантский запрос.

Валидация входящих данных

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

Что и как проверять:

<?php
// Валидация тела вебхука по белому списку полей и типов
$data = json_decode($raw, true);
if (!is_array($data)) { http_response_code(400); exit('bad json'); }

$orderId = filter_var($data['order_id'] ?? null, FILTER_VALIDATE_INT);
$status  = $data['status'] ?? '';
$amount  = filter_var($data['amount'] ?? null, FILTER_VALIDATE_FLOAT);

$allowedStatus = ['paid', 'shipped', 'canceled'];

if ($orderId === false || $orderId <= 0
    || !in_array($status, $allowedStatus, true)
    || $amount === false || $amount < 0) {
    http_response_code(422);           // Unprocessable Entity
    exit('validation failed');
}
// дальше — только чистые, типизированные значения

Обратите внимание на код 422 Unprocessable Entity для семантически неверных данных и 400 Bad Request для битого формата — разные коды помогают отправителю понять, что именно не так. Тема защиты кастомного кода от инъекций и IDOR подробно разобрана в материале Безопасность магазина на Битрикс: OWASP на практике — валидация вебхуков подчиняется тем же принципам.

Конвейер обработки входящего запроса 1. Подпись HMAC верна? 2. Свежесть не повтор? 3. Лимит в рамках? 4. Валидация данные ок? 5. Обработка Любой шаг не пройден — запрос отклонён, до базы данные не доходят
Схема: входящий запрос проходит конвейер проверок по порядку; сработавший фильтр останавливает обработку до того, как данные попадут в ядро.

Транспорт: HTTPS, TLS и заголовки

Самая изящная подпись бессмысленна, если запрос идёт по открытому HTTP: секрет в заголовке или токен в URL можно перехватить прямо в сети. Транспортная безопасность — это фундамент, без которого остальные меры держатся на честном слове.

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

Идемпотентность обработчиков

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

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

Связка «быстрый приём + очередь + идемпотентная обработка» — это архитектурный паттерн надёжных интеграций. Он одновременно повышает и безопасность (меньше окна для гонок и повторов), и устойчивость к пиковым нагрузкам. Детальный разбор очередей и гарантий доставки — в статье про надёжность интеграций.

Реализация в 1С-Битрикс

Теперь соберём всё вместе применительно к платформе. Вот как перечисленные меры ложатся на конкретные инструменты 1С-Битрикс.

  1. Создание вебхука. Входящий вебхук создаётся в разделе «Разработчикам → Другое → Вебхук» (или через модуль REST на самохостинге). При создании отмечайте только нужные права доступа — это и есть настройка scope по принципу наименьших привилегий.
  2. Обработчик исходящих событий. Для исходящих уведомлений вешайте обработчик на события ядра (например, OnSaleOrderSaved, события каталога) и внутри него формируйте подписанный HTTP-запрос через Bitrix\Main\Web\HttpClient. Подпись HMAC добавляйте в заголовки, как в примерах выше.
  3. Свой REST-эндпойнт. Кастомный приёмник вебхуков удобно оформить как отдельный маршрут через Bitrix\Main\Routing или отдельный публичный файл с ранней проверкой подписи, метки времени и лимита — до подключения тяжёлого ядра.
  4. Хранение секретов. Секреты и токены выносите в .settings.php вне репозитория или в переменные окружения, а не в код компонента. Файл конфигурации закройте от веб-доступа.
  5. Кэш для лимитов и nonce. Для счётчиков rate limit и реестра обработанных событий используйте Bitrix\Main\Data\Cache или подключённый Redis/Memcached — быстро и без нагрузки на основную базу.
  6. Логирование. Пишите факт обращения, токен (маскированный), результат проверки подписи и код ответа в отдельный журнал — через Bitrix\Main\Diag или свою таблицу аудита.
  7. Отзыв и ротация. Отзыв скомпрометированного вебхука — удаление или пересоздание в том же интерфейсе; заложите процедуру смены секрета исходящих вебхуков без простоя (поддержка двух активных секретов на время переключения).
Важно: ранняя проверка на кастомном эндпойнте экономит ресурсы и повышает безопасность. Отклоняйте запрос с неверной подписью или превышенным лимитом до подключения полного пролога Битрикса — так атака перебором не будет каждый раз поднимать тяжёлое ядро.

Секреты: хранение и ротация

Токены и HMAC-секреты — это и есть та ценность, ради которой затевается защита. Все остальные меры рушатся, если секрет лежит в открытом доступе. Дисциплина хранения секретов часто важнее, чем выбор алгоритма подписи.

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

Логирование, аудит и мониторинг

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

Что стоит фиксировать по каждому обращению к API и вебхукам:

ПолеЗачем
Время, IP, токен (маскированный)Кто и откуда обращался — база для расследования
Метод / эндпойнтПонять, что именно пытались вызвать
Результат проверки подписиВсплеск неверных подписей — признак атаки подделкой
Код ответа (2xx / 4xx / 429)Рост 401/429 — перебор токенов или флуд
Идентификатор событияСвязать повторы и восстановить цепочку

Поверх логов настройте простые сигналы тревоги: резкий рост числа ответов 401 (кто-то подбирает токен или шлёт неподписанные запросы), всплеск 429 (флуд или забагованная интеграция), обращения с новых, ранее не встречавшихся IP к чувствительным методам. Даже базовый мониторинг этих метрик позволяет заметить инцидент за минуты, а не за недели, когда о нём сообщат клиенты.

Совет: храните журнал аудита отдельно от основной базы и с ограниченным доступом. Если злоумышленник получил доступ к сайту, первым делом он попытается вычистить следы. Логи в отдельном хранилище с только-добавлением (append-only) переживут такую зачистку.

Вебхук или OAuth-приложение — сравнение

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

КритерийВходящий вебхукOAuth-приложение
Тип секретаСтатический токен в URLКороткоживущий access + refresh-токен
Управление правамиФиксированный scope при созданииЗапрос областей доступа, гибко
Отзыв доступаУдалить/пересоздать вебхукОтозвать токены приложения централизованно
Риск при утечкеВысокий: ключ действует, пока не отозванНиже: access-токен быстро истекает
Сложность подключенияМинимальнаяВыше: нужен OAuth-флоу
Когда уместноВнутренние задачи, узкий доверенный сервисВнешние партнёры, публичные и тиражные интеграции

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

Частые ошибки

Мини-FAQ. Достаточно ли одной подписи HMAC для безопасности вебхука? Нет — подпись подтверждает подлинность и целостность, но не защищает от повтора, перебора и мусора в данных. Нужна связка: HTTPS + подпись + метка времени + лимит + валидация.

Чек-лист внедрения

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

  1. Токены по задачам. Каждой интеграции — свой токен с минимальным scope; универсальных ключей с полными правами нет.
  2. Только HTTPS. Все вебхуки работают по TLS; устаревшие протоколы и слабые шифры отключены; проверка сертификатов включена.
  3. Подпись включена. Исходящие вебхуки подписаны HMAC-SHA256, приёмник сверяет подпись через hash_equals до обработки.
  4. Защита от повторов. В подпись входит метка времени, старые запросы отклоняются, идентификаторы событий запоминаются.
  5. Ограничение частоты. Настроены лимиты по IP, токену и дорогим методам; при превышении — 429 с Retry-After.
  6. Валидация данных. Все входящие поля проверяются по типам, диапазонам и белым спискам; проверяются права на объект (анти-IDOR).
  7. Идемпотентность. Повторная доставка одного события не создаёт дублей; тяжёлая обработка вынесена в очередь.
  8. Секреты защищены. Токены вне репозитория и веб-корня, маскированы в логах, есть процедура ротации и мгновенного отзыва.
  9. Аудит и мониторинг. Обращения логируются, настроены сигналы на всплеск 401/429 и обращения с новых IP.

Вывод

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

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

Чем вебхук отличается от OAuth-приложения с точки зрения безопасности?

Вебхук — это статический URL с встроенным токеном и фиксированным набором прав: он прост в подключении, но если ключ утёк, злоумышленник получает доступ ко всем разрешённым методам сразу. OAuth-приложение выдаёт короткоживущий access-токен и refresh-токен, права запрашиваются по областям (scope), а доступ можно отозвать централизованно. Для внешних интеграций и партнёрских сервисов надёжнее OAuth, вебхуки же уместны для внутренних сценариев с ограниченными правами.

Нужно ли подписывать исходящие вебхуки из Битрикса?

Да. Исходящий вебхук уведомляет ваш внешний сервис о событии, но принимающая сторона по умолчанию не знает, что запрос действительно пришёл от Битрикса, а не подделан. Добавьте к телу запроса подпись HMAC-SHA256 на общем секрете и проверяйте её на приёмнике до обработки данных. Без подписи любой, кто узнает адрес обработчика, сможет присылать фальшивые события.

Как ограничить частоту обращений к REST, чтобы не положить сайт?

Ограничение частоты (rate limiting) стоит делать на нескольких уровнях: на веб-сервере или reverse-proxy по IP и токену, а также в самом обработчике — считая обращения в скользящем окне и отдавая код 429 с заголовком Retry-After при превышении. В Битриксе для внешних вызовов действуют собственные лимиты REST, но кастомные эндпойнты нужно защищать самостоятельно. Комбинируйте лимит по токену, по IP и по конкретному методу.

Что именно проверять при валидации входящих данных вебхука?

Проверяйте всё, что пришло снаружи, как потенциально враждебное: тип и формат каждого поля, диапазоны чисел, длину строк, принадлежность значений к разрешённому списку, корректность идентификаторов и прав на объект. Не доверяйте Content-Type и не полагайтесь на то, что клиент прислал ожидаемую структуру. Используйте белые списки полей вместо чёрных и приводите данные к строгим типам до записи в базу.

Как защититься от повторной отправки одного и того же вебхука (replay)?

Добавляйте в подписываемую часть запроса метку времени и уникальный идентификатор события. На приёмнике отклоняйте запросы со слишком старой меткой времени и запоминайте уже обработанные идентификаторы, чтобы повтор не создавал дублирующий заказ или платёж. Такой подход делает операции идемпотентными: даже если событие придёт дважды из-за ретрая, результат будет один.

Где безопасно хранить токены и секреты вебхуков в Битриксе?

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

Поделиться:

Нужно защитить API и вебхуки вашего магазина?

Проведём аудит REST и вебхуков, закроем утечки токенов, настроим подписи, ограничение частоты и валидацию, наладим аудит обращений. Рассчитаем работы по вашей инфраструктуре.

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

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

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

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