Možná jste si všimli, že API na https://security.symfony.com na konci ledna 2021 ukončilo provoz. API používalo balíček Composer sensiolabs / security-checker, který byl archivován a již by se neměl používat, jak uvádí popis projektu.
Protože bezpečnost je pro nás velmi důležitá, po každé instalaci nebo aktualizaci balíčků se provede kontrola známých chyb zabezpečení. Z důvodů ukončení provozu bezpečnostního API jsme museli najít náhradu, abychom zajistili nastavenou úroveň bezpečnosti projektů.
Jednou z možností je použít Local PHP Security Checker. Použití je docela jednoduché – stačí spustit binární soubor ve složce s vaší aplikací a nástroj poskytuje stejné výsledky, na jaké jste zvyklí. Na druhou stranu je napsán v Go, takže jej nelze nainstalovat jako závislost Composeru a integrace do vašich procesů může vyžadovat trochu práce.
Pokud používáte binární soubor Symfony, již máte k dispozici nástroj pro kontrolu slabých míst zabezpečení. Jediné, co musíte udělat, je spustit symfony check: security.
Poslední možností v tomto příspěvku je ta, kterou jsme vybrali jako výchozí v nadcházející verzi Shopsys Framework – enlightn/security-checker. Protože se jedná o standardní balíček PHP, můžeme tento nástroj snadno nainstalovat pomocí Composeru a použít jej bez jakýchkoliv potíží.
Spolu s výměnou skeneru zranitelností jsme se rozhodli pro další změnu. Od této chvíle nebude kontrola slabých míst prováděna po každé instalaci Composeru, ale pouze při aktualizaci závislostí (tedy po spuštění composer install bez souboru composer.lock, composer update, nebo composer require). Také poskytujeme Composer skript (composer security-check) a Phing target (php phing security-check) pro spuštění ručně nebo jako součást CI pipeline. Je to proto, že kontrola zabezpečení by se měla provádět pravidelně, nikoli po každém push do repozitáře, kdy jsou závislosti nainstalovány. Tímto způsobem si můžete být jisti, že Vaše aplikace je bezpečná, i když ji právě nevyvíjíte a zároveň nebudete blokování padajícím buildem kvůli bezpečnostnímu problému, když už kolega pracuje na opravě.
V příslušném pull request můžete vidět a inspirovat se představenými změnami.