Composer es una herramienta fantástica. Cuando apareció este gestor de paquetes para PHP fue un enorme cambio a mejor en nuestro lenguaje de programación favorito.
Pero es una herramienta muy peligrosa.
¿Qué es Composer?
Es un software que permite añadir de manera muy rápida y sencilla a nuestro proyecto paquetes creados por terceros. Antes había que buscar por la web, descargarse una clase que hacía lo que necesitábamos e ir comprobando si había nuevas versiones. Con Composer todo eso es cosa del pasado.
¿Por qué es peligroso usar Composer?
El peligro que yo veo a Composer es la confianza que tenemos en los paquetes que se añaden en su repositorio. Usamos paquetes de otros con tremenda alegría y como si no hubiera un mañana.
Confesemos todos que cuando metemos una nueva dependencia a nuestro proyecto no nos molestamos en mirar su código. Y en ese código que no miramos puede haber un agujero de seguridad como una casa.
No solo podemos meter algún agujero de seguridad. Podría incluso suceder que alguien introduzca código malicioso en alguno de esos paquetes ¡Y nosotros lo estaríamos agregando en nuestro proyecto de forma voluntaria!
¿Cómo puedo evitar usar software con agujeros de seguridad?
Usando el paquete roave/security-advisories
Puedes añadir el paquete roave/security-advisories a tu composer.json con este comando:
composer require --dev roave/security-advisories:dev-master
Este es un sencillo proyecto que lo único que contiene es un listado de paquetes que se sabe que tienen algún problema. Si intentamos añadir alguno de estos paquetes a nuestra aplicación nos avisará del riesgo.
Lo bueno que tiene es que no requiere de software adicional. Es el propio Composer el que vigila que no se instalen esos paquetes.
Usar la herramienta de FriendsOfPHP
También hay otra herramienta creada por el grupo FriendsOfPHP (entre los cuales está el gran Fabien Potencier, creador de Symfony).