Безопасность и работа с данными
Как AACSearch отделяет данные каждого клиента, защищает ключи и ограничивает то, что может сделать любой запрос. У каждой меры указан код, который её реализует.
Изоляция клиентов
Каждый индекс — отдельная коллекция, а каждый запрос несёт серверный фильтр организации, который вызывающая сторона не может переопределить.
packages/search-engine/search.ts · scopeFilterКлючи API хранятся в виде хешей
Ключ показывается один раз и хранится как хеш SHA-256. У ключа может быть срок действия, его можно перевыпустить с переходным периодом или отозвать.
packages/api/lib/search/api-keys.tsOIDC SSO на Enterprise
Организации на тарифе Enterprise могут входить через OIDC-провайдера после проверки домена почты. SAML пока недоступен; каждый вход проверяется по тарифу, поэтому при понижении плана доступ через IdP сразу отключается.
packages/auth/lib/sso-gate.tsНикаких ключей в браузере
Виджет работает на коротких токенах сессии (по умолчанию 15 минут, максимум час). Их выпускает ваш сервер, и они позволяют только искать в одном индексе.
packages/api/lib/search/embed-token.tsДоступ на уровне документа
У документа может быть список доступа. Результаты, счётчики и фасеты фильтруются до подсчёта, поэтому скрытые документы не видны даже по общему числу найденного.
packages/search-engine/search.ts · withAclFilterБезопасный обход сайтов
Краулер и коннекторы обращаются только к публичным адресам http(s) и проверяют каждый редирект, поэтому их нельзя направить во внутреннюю сеть.
packages/api/lib/search/safe-fetch.tsОграничение частоты запросов
Лимиты по ключу на каждом эндпоинте API и лимиты по IP на публичных эндпоинтах — виджете и проверках доступности.
packages/api/lib/search/ip-rate-limit.tsОшибки ничего не раскрывают
Публичные коды и тексты ошибок не содержат деталей движка, трассировок стека и идентификаторов других клиентов.
packages/api/lib/search/privacy.tsЖурнал аудита
Административные действия — ключи, правила, эксперименты, коннекторы, удаление данных — записываются с указанием автора и времени.
packages/api/lib/search/audit.tsЭкспорт и удаление
Организация может выгрузить свои данные и полностью удалить их: индексы, документы, журналы запросов и графы.
GET /organization/export, DELETE /organization/dataЧего пока нет
Чтобы вы могли это учесть:
- Сертификации SOC 2 и ISO 27001 пока нет.
- Клиент пока не может выбрать регион хранения данных — уточните у нас, где они размещены.
Сообщить об уязвимости
Если вы нашли проблему безопасности, напишите нам с подробностями и шагами воспроизведения. Пожалуйста, не проводите проверки на данных других клиентов.
Написать по безопасности