Если экспорт персональных данных содержит чужие записи, это критическая ошибка доступа. Ее нужно исправлять быстро и аккуратно.

Такая проблема влияет на доверие, договорные обязательства и юридические риски, особенно в B2B-сервисах и личных кабинетах.

Коротко: экспорт должен применять те же или более строгие права, что и обычный просмотр данных.

Почему возникает проблема

Чужие записи попадают в экспорт из-за отсутствия tenant-фильтра, неверного join, кеша файла, очереди, которая запускается от системного пользователя без ограничения, или проверки прав только в интерфейсе.

Что проверить в первую очередь

  • какой пользователь запускает экспорт
  • какой SQL или фильтр формирует выборку
  • учитывается ли tenant/project
  • не переиспользуется ли старый файл
  • есть ли аудит скачиваний

Как я решаю такую задачу

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

  • локализую опасный экспорт
  • ограничиваю доступ при необходимости
  • исправляю фильтры и права
  • очищаю неверно созданные файлы
  • проверяю другие экспорты и добавляю тест

Что подготовить

  • пример файла с чужими записями
  • кто запускал экспорт
  • какие данные должны быть в выгрузке
  • доступ к коду и базе
  • список похожих экспортов

Сроки и риски

Первичное ограничение нужно делать сразу. Полная проверка зависит от количества экспортов и сложности прав доступа.

Чего лучше не делать

Не чините только frontend-кнопку. Экспорт должен быть защищен на backend и уровне запроса данных.

FAQ

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

Да, если они содержат лишние данные и доступны для скачивания.

Нужно ли смотреть логи?

Да, чтобы понять, кто и когда скачивал файл.

Почему интерфейс показывает правильно, а экспорт нет?

Экспорт может использовать отдельный запрос без тех же фильтров.

Как не повторить ошибку?

Добавить тесты прав доступа для экспорта и ревизию похожих отчетов.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и короткое описание того, как должно работать. Я посмотрю задачу, предложу безопасный план и скажу, какие доступы понадобятся.

Итог

Экспорт персональных данных должен выгружать только разрешенные записи, логировать доступ и не переиспользовать чужие файлы или кеш.