advanced
Безопасное логирование PII
Защищайте пользователей: редакция, хеширование, исключение и осознанное хранение чувствительных полей в логах и error reports.
Логи и error reports часто живут дольше запроса. Относитесь к ним как к полупубличному хранилищу: редактируйте, хешируйте, токенизируйте или опускайте поля, идентифицирующие людей, credentials или платёжные данные. Retention согласуйте с политикой конфиденциальности и регуляцией.
| Данные | Более безопасный паттерн | |--------|--------------------------| | Email, телефон | Redact или hash с солью | | Токены, пароли | Никогда в лог; вычищать из stack | | IP / device | Лимиты retention; ограничение цели | | Свободный ввод | Truncate; скан на случайный PII |
function safeUser(record: { id: string; email: string }) {
return { userId: record.id, email: '[redacted]' };
}
Настройте forwarders и APM на отбрасывание известных sensitive keys. «Временный» debug в production всё равно реплицируется к вендорам.
На интервью: минимизация данных, user ID vs email в логах, scrubbing в Sentry и контроль доступа при инцидентах.
Типовые ошибки: Authorization headers в логах; полные webhook с картами; экспорт логов в тикеты без редакции.
Компромисс — отладка при инцидентах против compliance-риска и доверия пользователей.
Чеклист:
- Denylist чувствительных полей в logger.
- Scrubbing сторонних error reporters.
- Retention и роли доступа.
- Review новых log-полей в code review.