Как проверить, что аналитика не отправляет личные данные?
Что проверяют
Знаете ли вы, где на практике утекают персональные данные: не только в явных параметрах событий, но и в URL, автоматически собираемых полях и отчётах об ошибках. Следом обычно спрашивают, как проверить мобильное приложение с шифрованным трафиком и как встроить проверку в регрессию.
Как отвечать
Опорой служит план трекинга: список событий и разрешённых параметров, всё сверх него уже повод для вопроса. Персональными по 152-ФЗ считаются любые сведения, по которым можно определить человека, а не только ФИО, телефон и e-mail.
Каркас проверки:
- данные-маркеры: тестовый пользователь с уникальными именем, e-mail и телефоном, которые потом ищут во всём перехваченном трафике. Искать надо и в закодированном виде: URL-кодирование, Base64, хеш от e-mail;
- перехват трафика: в вебе вкладка Network в DevTools с фильтром по доменам аналитики, для мобильных прокси вроде Charles или mitmproxy. Начиная с Android 7 приложения по умолчанию не доверяют пользовательским сертификатам, поэтому нужна отладочная сборка с
network_security_config; - отладочный режим SDK: у большинства систем аналитики есть режим, где видно каждое событие с параметрами;
- скрытые каналы: адрес страницы и
referrer(например,?email=в ссылке сброса пароля), заголовки экранов, автосбор кликов и значений полей, запись сессий, крэш-репорты с breadcrumbs; - согласие: до принятия cookie-баннера или согласия в приложении события не уходят, если этого требует политика;
- автоматизация: в Playwright
page.on('request')собирает запросы к аналитике, тест проходит сценарий регистрации и проверяет, что маркеров в них нет.
Где спотыкаются
Проверяют только события из задачи. Утечка чаще приходит из автосбора: SDK сам отправил URL с токеном или текст поля ввода.
Не учитывают пакетную отправку. Мобильные SDK копят события и шлют их позже, иногда сжатыми, и если выключить прокси через минуту, нужный запрос просто не попадёт в лог.
Берут тестовые данные вида «test», которые в трафике не отличить от служебных строк. Уникальный маркер находится поиском за секунду.