Фильтрация чувствительных данных
Иногда в событиях могут оказаться данные, которые не должны покидать ваш сервер или устройство пользователя. Фильтрация помогает скрыть такие поля и не отправлять их в Хоук.
Фильтрация работает на двух уровнях:
- На стороне кэтчера (в вашем приложении, до отправки события).
- На стороне бэкенда Хоука (дополнительная защита на сервере).
Если нужно удалить или изменить чувствительные поля перед отправкой события, используйте хук 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
Такая защита снижает риск утечки конфиденциальных данных даже если вы случайно не отфильтровали их на клиентской стороне.