La tontería del día: SponsorLink

Si bien a diario me encuentro en internet, o en la vida en general, nuevas tonterías o cosas realmente absurdas; y estas casi nunca me sorprenden, hoy me he topado con una digna de reseñar: SponsorLink.

SponsorLink es una biblioteca (que no librería, porque «library» es biblioteca y librería es «bookstore») que comprueba en base a tu dirección de correo de Git (user.email en el archivo .gitconfig) si estás apoyando el proyecto en GitHub. Para ello, la biblioteca que lo use añade unas líneas de código (en el compilador, creo) que hacen saltar un aviso en el IDE pidiéndote que por favor apoyes económicamente al proyecto.

Esta biblioteca de .NET es privativa, es decir, no está el código fuente en ningún lado, y del repositorio de NuGet no se puede descargar nada más que un .dll (el binario resultante). Es decir, no te puedes fiar de esa biblioteca ni de ninguna que la use. No solo eso, es que es prácticamente malware:

  • Accede a archivos de tu sistema sin tu consentimiento (al .gitconfig de tu perfil)
  • Manda una petición a internet con tu dirección de correo electrónico (dato identificativo, por cierto, sería gracioso ver que le parece a las agencias de protección de datos de Europa)
  • Te pide un pago económico para que deje de darte un falso aviso de error en tu programa.

Una biblioteca llamada Moq implantó este sistema a partir de la versión 4.20. Con lo que, cuando compilas un programa que usa Moq, se ejecutará este código de fondo, mandando tu email a no-se-sabe-donde (a Azure Blob Storage, supuestamente, pero fíate tú) y te pedirá que dones a ese proyecto.

Si bien la intención es buena (ayudar a financiar el código abierto), la implementación es horrible en varios aspectos. En primer lugar, siendo un componente para bibliotecas open-source, cualquiera puede hacer un fork de la biblioteca original sin ese script y compilarlo para uso propio o subirlo a NuGet.

En segundo lugar, si alguien quiere auditar bibliotecas como Moq con este sistema para usarlas en su empresa, probablemente decidan que no pueden fiarse por tener componentes privativos que llaman a internet cada vez que compilas en ciertos entornos. Así que seguramente bloquearán ese tráfico o decidirán usar otra biblioteca. No solo te quedas sin sponsor, te quedas sin usuario también, y con razón.

Por último, no nos podemos fiar porque es un servidor de terceros. ¿Y si un día se cae la región de Azure en la que está? ¿O la persona que mantiene esos servidores los borra por accidente o deja de pagar? ¿Y si deja de ser económicamente sostenible? Pues es muy sencillo, como usuario te fastidias, aparentemente.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *