Table of contents

Фильтрация чувствительных данных

Иногда в событиях могут оказаться данные, которые не должны покидать ваш сервер или устройство пользователя. Фильтрация помогает скрыть такие поля и не отправлять их в Хоук.

Фильтрация работает на двух уровнях:

  1. На стороне кэтчера (в вашем приложении, до отправки события).
  2. На стороне бэкенда Хоука (дополнительная защита на сервере).

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

Он принимает объект события, в котором можно удалить или модифицировать данные. Вы можете вернуть false, тогда событие не будет отправлено вовсе.

const hawk = new HawkCatcher({ token: 'ВАШ_ТОКЕН_ИНТЕГРАЦИИ', beforeSend(event) { // Удаляем заголовок авторизации if (event.payload.context.request?.headers?.Authorization) { delete event.payload.context.headers.Authorization; } // Для отмены отправки, вернем false if (event.title.startsWith('Script Error.')) { return false; } return event; } });

Дополнительно мы автоматически фильтруем потенциально опасные данные уже на сервере Хоука.

Удаляются:

  • значения, которые выглядят как номера банковских карт (по регулярным выражениям);
  • поля, чьи названия или значения содержат следующие ключевые слова:
password, secret, passwd, api_key, apikey, access_token, auth, credentials, mysql_pwd, stripetoken, card, cardnumber

Такая защита снижает риск утечки конфиденциальных данных даже если вы случайно не отфильтровали их на клиентской стороне.