Věřím, že příkaz composer audit většina ze čtenářů Maxiorla už zná. Ale přesto. Pokud jej spustíte ve svém projektu, projde všechny balíčky instalované podle souboru composer.lock a vypíše vám seznam těch, pro které eviduje známé zranitelnosti.
Například u Drupalu je důležité připomenout, že Composer spravuje nejenom jádro a použité moduly nebo témata vzhledu, ale také celou řadu knihoven. Jejich zranitelnost přímo v administraci na stránce s výpisem aktualizací neuvidíte. Ve výpisu auditu z Composeru ano.
Nové zabezpečení
Pokud máte ve svém projektu součástku se známou zranitelností, při spuštění příkazu pro aktualizaci nebo začlenění nového balíčku Composer zanalyzuje bezpečnostní doporučení a v případě nalezení zranitelností jejich stažení zablokuje. Posouvá se tak do role aktivního ochránce.
Zní to dobře, ve skutečnosti můžete narazit na různé problémy, kdy vám Composer odmítne provést aktualizaci kvůli nějakým chybám. U starších verzí projektů může být naopak potřeba použít staré balíčky kvůli kompatibilitě, byť to v kontextu zabezpečení zní absurdně.
💡Narazil jsem na to u některých starých projektů. Některé zranitelnosti jsou nebezpečné jen v konkrétní kombinaci, která u daného projektu nemusí nastat. I proto je fajn, že lze zabezpečení obejít.
Jak zabezpečení vypnout
Vypínat toto nové zabezpečení nedoporučuju. Pokud byste přesto potřebovali zabezpečení potlačit nebo upravit, tak přidejte do souboru composer.json následující konfiguraci:
{
"config": {
"audit": {
"block-insecure": false
}
}
}
To je nejjednodušší řešení. Pokud dáváte přednost selektivnímu potlačení bezpečnostní kontroly, je možné ji deaktivovat i pouze pro konkrétní CVE:
{
"config": {
"audit": {
"ignore": {
"CVE-2026-12345": "Netýká se nás"
}
}
}
}
Další možnosti konfigurace bezpečnostní kontroly v Composeru najdete v dokumentaci.
Jak často kontrolu spouštět?
Pokud nemáte celý proces automatizován, doporučuji composer audit spouštět u kritických webů každý den, u těch běžných jednou týdně. To mám zavedeno i u svých projektů. Většina běží na Drupalu, který aktualizace zveřejňuje jednou týdně ve středu, takže poté provádím kontroly.
U starších projektů nebo komplikovaných závislostí může bezpečnostní kontrola spíš brzdit než pomáhat. Přesto mi dlouhodobě dává smysl ji nevypínat automaticky, ale nejdřív se zamyslet, proč Composer protestuje.
Beru to jako další připomínku, že bezpečnost dnes není jednorázová akce při vydání webu, ale průběžný proces. A Composer se do něj konečně zapojil způsobem, který má reálný dopad.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Přidat komentář