Перейти к содержимому

Безопасность API-ключей Wildberries

SELLTRIX просит у вас два разных API-ключа Wildberries — финансовый и отзывный. Это не для нашего удобства: разделение прав даёт реальную защиту данных вашего магазина. Разбираем, почему так и как это работает.

Один ключ — одна большая дыра

Wildberries по умолчанию предлагает создать «Персональный» токен и поставить галочки на все 13 категорий доступа в режиме «Чтение и запись». Большинство SaaS-сервисов так и просят. Удобно: один ключ — и всё работает.

Проблема: такой ключ — это полные права на ваш магазин. Если он утечёт через логи SaaS, базу с кэшем, JS-ошибку или сотрудника — злоумышленник получит доступ ко всему сразу:

  • выгрузит финансовые отчёты и узнает оборот вашего бизнеса;
  • поменяет цены и скидки прямо в карточках товаров;
  • отправит ответ от имени магазина на любой отзыв — навредит репутации;
  • остановит/запустит рекламные кампании и сольёт бюджет в пустоту;
  • сольёт остатки и поставки.

Как у нас: два ключа с минимумом прав

Финмодуль SELLTRIX только читает данные WB — ему не нужно ничего менять в вашем магазине. Расчёт прибыли, дашборд, ОПиУ, маржинальная прибыль, рука на пульсе — это всё чтение отчётов. Поэтому первый ключ — read-only.

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

Финмодульный ключ
Только чтение · 10 категорий
  • Контент
  • Маркетплейс
  • Статистика
  • Финансы
  • Аналитика
  • Цены и скидки
  • Поставки
  • Возвраты
  • Документы
  • Пользователи
Даже если этот ключ утечёт — никто не сможет ничего изменить в вашем магазине. Это просто право посмотреть отчёты.
Отзывный ключ
Чтение и запись · 1 категория
  • Вопросы и отзывы
Создаётся отдельно, когда вы решите отвечать на отзывы из SELLTRIX. При утечке отвечать от вашего имени смогут, но финансы, цены, реклама — целы. Отзывать можно независимо от финмодульного.

Что это даёт на практике

Изоляция blast radius. Утечка одного ключа не означает компрометацию другого. Это базовый принцип безопасности — minimum privilege. Раньше его соблюдали только корпоративные интеграции; теперь это есть и для селлера на маркетплейсе.

Гибкое управление командой. Если у вас есть SMM-сотрудник, который отвечает на отзывы, — можно дать ему отдельный отзывный ключ, не раскрывая финансовый. При увольнении SMM — отзовите только review-ключ, финансы не дёргайте.

Производительность. Лимит «Вопросы и отзывы» в WB — 1 запрос в секунду (при превышении блок на 60 секунд). Отдельный ключ не конкурирует с финмодулем за этот лимит — отзывы и финансовые отчёты загружаются параллельно.

Как создать ключи: пошагово

Шаг 1: финмодульный ключ (обязательно)

  1. Откройте ЛК WB → Настройки → Доступ к API
  2. Нажмите «Создать новый токен», выберите тип Персональный
  3. Поставьте 10 галочек: Контент, Маркетплейс, Статистика, Финансы, Аналитика, Цены и скидки, Поставки, Возвраты, Документы, Пользователи
  4. Уровень доступа: Только чтение — не «Чтение и запись»
  5. Скопируйте ключ (показывается один раз) и вставьте в форму подключения SELLTRIX

Шаг 2: отзывный ключ (опционально)

Если вы планируете отвечать на отзывы и вопросы из SELLTRIX — создайте второй ключ. Можно сразу при подключении магазина либо отложить и подключить позже, когда зайдёте в раздел «Отзывы и вопросы» — мы предложим сами.

  1. В том же разделе ЛК WB создайте второй Персональный токен
  2. Поставьте только одну галочку: «Вопросы и отзывы»
  3. Уровень доступа: Чтение и запись — публикация ответов требует write
  4. Скопируйте и вставьте в SELLTRIX (в onboarding или Mini App отзывов)

Безопасность на нашей стороне

Каждый ключ шифруется ключом Fernet перед сохранением в БД. Расшифрованный ключ существует только в памяти процесса при запросе к WB — после ответа выгружается. Мы не показываем ключи повторно даже вам: при необходимости обновления просто вводите новый — старый перезаписывается.

На карточке вашего кабинета в «Магазины» вы всегда видите статус каждого ключа отдельно — финмодульный и отзывный. Если ключ скоро истечёт (WB даёт 180 дней) — придёт уведомление в Telegram за 14, 7, 3 и 1 день до истечения, с указанием какой именно ключ нужно перевыпустить.

FAQ

У меня уже подключён единый ключ, нужно ли что-то делать?

Нет, ничего не сломалось — старый ключ продолжает работать. Но мы рекомендуем перейти на раздельные ключи в любой удобный момент: это снижает риск утечки. Сделать это можно из карточки кабинета: «Обновить ключи» → введите два новых и старый автоматически уйдёт в архив.

Можно ли использовать один ключ и для финмодуля, и для отзывов?

Технически — да, мы поддерживаем legacy-кабинеты с одним ключом. Но безопаснее два. Если вы только подключаетесь — заведите два сразу.

Что если я создал ключ с правом «Чтение и запись» вместо «Только чтение»?

Финмодуль будет работать одинаково — мы делаем только GET-запросы независимо от scope. Но если такой ключ утечёт, у злоумышленника будет больше возможностей. Лучше перевыпустить с «Только чтение».

Можно ли изменить набор категорий потом?

WB не позволяет редактировать существующий ключ — только создать новый. Если мы добавим новую фичу, которой нужна категория не из нашего списка (например, биддер потребует «Продвижение») — мы попросим перевыпустить ключ и пришлём подробную инструкцию.

Перейти к подключению магазина