Что такое чувствительные данные (sensitive data)? Как их хранить и логировать безопасно?
Уровень: Senior
Ответ
Чувствительные (конфиденциальные) данные — это информация, раскрытие которой нежелательно или опасно. К ним относятся: персональные данные пользователей (имя, адрес, телефон, email), учетные данные (логины, пароли), финансовая информация (номера кредитных карт, банковские счета), медицинские данные и т.д. Безопасное хранение подразумевает, что такие данные в базе должны быть защищены: пароли, например, не хранят в открытом виде — только хэш (желательно bcrypt/argon2) + соль. Другие критичные данные могут храниться в зашифрованном виде (с использованием стойких алгоритмов шифрования, ключи не лежат рядом с данными). Логирование: в журналах нельзя оставлять полные конфиденциальные данные — например, логируя объект пользователя, необходимо маскировать или удалять поля с чувствительной информацией (заменять часть символов звёздочками, не писать пароли вообще). Также важно ограничивать доступ к логам. Цель — минимизировать риск компрометации: даже если злоумышленник получит базу, он не сможет мгновенно узнать пароли, ему придётся затратить огромные усилия на подбор по хешам.