Комментарии 13
Это демонстрационная версия логгера, она упрощена для наглядности. В реальном логгере можно докручивать необходимый вам функционал, например обогащение информацией, обработку отсутствия сети, использование sendBeacon вместо fetch и т.п.
Атака на __proto__ и другие не эксплуатируема. Аналогичная уязвимость в Кибане так же закрыта. При попытке эксплуатации мы увидим код атаки и IP атакующего.
Здравствуйте, отличная статья. Возможна ли реализация с записью логов на устройстве пользователя и их отправке на сервер при обращении в тех поддержку?
Спасибо за статью.
Подскажите, а как решили вопрос авторизации запросов к этому сервису? Или любой может спамить логи?
В связи с тем что логи собираются в т.ч. с неавторизованных клиентов авторизацию прикрутить невозможно. Любая авторизация для анонимных клиентов невозможна ввиду того что весь код в вебе является опенсурсом и авторизация элементарно копируется. Единственный способ защиты это антиспам системы и другие системы защиты применяемые для обычного апи.
Можно микросервис логирования выкинуть и использовать http input того же logstash
Вместо fetch для отправки логов стоит использовать sendBeacon API, он как раз предназначен для отправки метрик/логов
По тексту встречаю "Kibana или Loki". Что используется так и не понятно. Описанные логи, выглядят не слишком структурированными, и кажется что Loki (с которым используют для визуализации Grafana, а не Kibana) для этого не очень хорошо подходит, так как не является движком полнотекстового поиска и ограничен в лейблах(индексах).
Может у вас все таки Kibana + Elastic Search ?
Кстати а почему бы просто не переопределить console.log браузера вместо кастомной обёртки?
Собираем логи веб-приложений в Kibana/Loki