Мы обрабатываем запросы к AI-моделям и платежи, поэтому безопасность — не дополнительная функция, а основа сервиса. Ниже описано, как устроена защита и что мы просим делать со своей стороны.
1. Принципы
- Минимум данных. Мы не храним тексты промптов и ответов моделей. В базе остаются только метаданные запроса: модель, токены, стоимость, статус, задержка.
- Секреты — только в виде хешей. Пароли хранятся как scrypt-хеши с индивидуальной солью, API-ключи — как SHA-256.
- Доступ по необходимости. К производственной базе и логам имеют доступ только сотрудники, которым это нужно для поддержки и устранения инцидентов.
- Защита в глубину. TLS на всём пути, ограничение частоты запросов, проверка Origin для браузерных вызовов, HttpOnly-сессии.
2. Аккаунты и сессии
Пароли хешируются алгоритмом scrypt с уникальной солью для каждого пользователя. Открытый пароль не сохраняется и не логируется. Сессия передаётся в cookie che_session с флагами HttpOnly и SameSite=Lax; в production — только по HTTPS.
Сессионные токены хранятся в виде хеша и имеют срок действия. Выход из аккаунта отзывает сессию на сервере, а не только удаляет cookie в браузере.
Мы рекомендуем использовать уникальный пароль и менеджер паролей. Если вы подозреваете компрометацию, смените пароль и отзовите все API-ключи в кабинете.
3. API-ключи
Ключ имеет формат che_sk_…. При создании показывается один раз; сервер сохраняет только SHA-256-хеш, префикс и последние четыре символа. По этой причине восстановить утраченный ключ невозможно — его нужно отозвать и выпустить новый.
Каждый ключ можно отозвать отдельно, не затрагивая остальные. История использования показывает, какой ключ выполнял запросы, — так проще заметить утечку.
Не встраивайте ключ в клиентские приложения, мобильные сборки и публичные репозитории. Для браузерных сценариев используйте серверный прокси, который хранит ключ на бэкенде.
4. Передача данных
Сайт и API работают по HTTPS с TLS 1.2+. Соединения с upstream-провайдерами также защищены TLS. Запросы не маршрутизируются через сторонние прокси, не принадлежащие провайдеру модели.
Тексты запросов передаются upstream-провайдеру для выполнения запроса. Мы не записываем их в базу и не используем для обучения моделей. Провайдер обрабатывает данные по своей политике — мы рекомендуем не отправлять персональные данные и коммерческую тайну без необходимости.
Для диагностики сохраняются обезличенные метаданные: время, модель, количество токенов, HTTP-статус и задержка. Этого достаточно, чтобы разобрать инцидент, не читая содержимое запроса.
5. Платежи
Платежи обрабатывает ЮKassa — лицензированный платёжный провайдер. CheApi не получает и не хранит номера банковских карт, CVV и срок действия. Мы получаем только статус платежа, сумму и идентификатор транзакции.
Webhook ЮKassa проверяется по подписи и повторно запрашивает статус платежа у API провайдера. Сумма, валюта и назначение сверяются с заказом, чтобы исключить подделку уведомления. Зачисление токенов идемпотентно: повторный webhook не создаёт двойного начисления.
Все платёжные операции фиксируются в истории кабинета. Если вы заметили подозрительное списание, напишите нам — мы проверим.
6. Защита от злоупотреблений
API ограничивает частоту запросов — по умолчанию 120 запросов в минуту на ключ. Браузерные вызовы проверяют Origin, чтобы предотвратить несанкционированное использование сессии с чужих сайтов.
Мы отслеживаем аномалии: резкий рост расхода, запросы с подозрительных адресов, массовую регистрацию. При выявлении признаков мошенничества аккаунт может быть временно ограничен до выяснения обстоятельств.
DDoS-защита и фильтрация трафика выполняются на уровне инфраструктуры. Инциденты фиксируются и разбираются по внутреннему регламенту.
7. Инфраструктура и резервные копии
Сервис размещён в дата-центрах с ограниченным физическим доступом. База данных доступна только из внутренней сети приложения. Резервные копии создаются регулярно и шифруются при хранении.
Обновления зависимостей и патчи безопасности применяются своевременно. Доступ к секретам production-окружения хранится в переменных окружения и не попадает в репозиторий.
Мы не заявляем о наличии сертификатов ISO 27001 или иных формальных аттестаций, если они не подтверждены отдельным документом. Описанные практики — реальные меры, а не маркетинговые обещания.
8. Инциденты
При выявлении инцидента, затрагивающего данные пользователей, мы ограничиваем распространение, устраняем причину и уведомляем затронутых пользователей по email. Информация о значимых сбоях публикуется на странице «Статус» и в Telegram-канале.
Если вы обнаружили уязвимость, напишите на hello@cheapi.ru с темой «Security». Мы подтвердим получение в течение 2 рабочих дней и сообщим о сроках исправления. Пожалуйста, не публикуйте детали до устранения проблемы и не тестируйте инфраструктуру без предварительного согласования.
9. Что можете сделать вы
- Используйте уникальный пароль и менеджер паролей.
- Храните API-ключи в переменных окружения, не в коде.
- Отзывайте ключи, которые больше не нужны.
- Проверяйте историю платежей и расход токенов.
- Не отправляйте в API данные, которые нельзя передавать третьим лицам.
- Сообщайте о подозрительной активности как можно раньше.
10. Контакты по безопасности
Email: hello@cheapi.ru
Поддержка: support@cheapi.ru
Telegram: @cheapi_support
ООО «ЧЕАПИ», ИНН 7712345678
ООО «ЧЕАПИ» · ИНН 7712345678 · ОГРН 1237700123456
125009, г. Москва, ул. Тверская, д. 7, офис 12