Проект Scarf позиционирует себя как Google Analytics для NPM-пакетов. Идея в том, что автор NPM-пакета добавляет Scarf в зависимости, а тот предоставляет отчёт о пользователях пакета: сколько их, какая у них операционная система, какие версии пакета они используют, в каких компаниях они работают.
Если хоть одна из зависимостей вашего проекта использует Scarf, при каждой установке зависимостей Scarf будет собирать и отсылать на сторонние сервера данные о вас и о вашем проекте, вплоть до вашего IP-адреса (как утверждается, он используется для определения компании, в которой вы работаете).
Scarf был подключен в популярных пакетах вроде react-table (~380 000 загрузок в неделю), redux-form (~370 000 загрузок в неделю), final-form (~232 000 загрузок в неделю), react-query (~50 000 загрузок в неделю), angular-calendar (~50 000 загрузок в неделю). К счастью, из всех перечисленных пакетов, кроме angular-calendar, Scarf уже удалён. На GitHub можно изучить полный список зависимых от Scarf пакетов.
Как отключить сбор данных?
Средствами самого Scarf
Добавьте в package.json
поле с настройками Scarf:
{
"scarfSettings": {
"enabled": false
}
}
Также можно задать переменную окружения:
export SCARF_ANALYTICS=false
Сторонними средствами
Установите специальную заглушку, которая подменяет вредоносный пакет Scarf.
Радикально: средствами пакетного менеджера
Устанавливайте пакеты с флагом --ignore-scripts
, это обезопасит вас не только от Scarf, но и от любых других потенциально вредоносных скриптов, выполняющихся в postinstall-хуках пакетов. Увы, это может сломать некоторые зависимости, которые используют postinstall-хуки в служебных целях вроде компиляции под вашу ОС.