Security Checker : Symfony / PHPUnit

SensioLabs Security CheckerSensioLabs propose une API qui permet de détecter les dépendances contenant des vulnérabilités de sécurité.

Il utilise le fichier composer.lock du projet pour parser les différentes librairies.

L’outil peut être interroger via le terminal, cURL, ou directement dans le code PHP.

Terminal

php security-checker security:check /path/to/composer.lock

cURL

curl -H "Accept: text/plain" https://security.sensiolabs.org/check_lock -F
lock=@/path/to/composer.lock

Voici comment ajouter facilement un test de sécurité à votre projet Symfony via un test unitaire :

namespace Tests\AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use SensioLabs\Security\SecurityChecker;

class SecurityControllerTest extends WebTestCase
{
    public function testIndex()
    {
        self::bootKernel();
        $dirProject = static::$kernel->getContainer()->getParameter('kernel.project_dir');

        $checker = new SecurityChecker();
        $alerts = $checker->check($dirProject . '/composer.lock');

        $this->assertCount(0, $alerts);
    }
}

De cette manière, si une librairie présente une faille de sécurité, PHPUnit lèvera une exception qui pourra être catchée par votre outil de CI (Jenkins par exemple).

Share Button

Laisser un commentaire.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.