Aktuální situace: PHP2Shell. Dvě kritické zranitelnosti PHP (CVSS 9.2) umožňují spustit škodlivý kód bez přihlášení. Záplaty od 21. 10. 2026.Co nyní udělat →

Frameworky PHP v přehledu

Frameworky dávají aplikacím PHP strukturu, směrování a bezpečnostní prvky. Přehled známých frameworků, kritéria výběru a hranice jejich ochrany.

Stav 4 min čteníZnalosti o PHP

Stručně: Framework PHP je základní konstrukce z opakovaně použitelného kódu, která už řeší typické úlohy webové aplikace: přesměrovat požadavky na správný kód, zpracovat data z formulářů, komunikovat s databázemi, vytvářet výstupy. Známé frameworky PHP jsou Laravel, Symfony, Laminas, CodeIgniter, Yii, CakePHP a Slim. Framework přináší bezpečnostní prvky, ale nechrání před zranitelnostmi v interpretu PHP, jako je PHP2Shell.

Co je framework PHP?

Bez frameworku píše každý tým směrování, kontrolu formulářů, relace a zpracování chyb znovu. Framework k tomu předepisuje pevné stavební prvky a konvence. Šetří to čas, činí kód čitelným pro nové vývojáře a soustřeďuje bezpečnostní funkce na jednom místě, místo aby je rozptýlil po stovkách souborů.

Pro vedení firmy je důležitý hlavně jeden důsledek: volbou frameworku se na léta vážete na jeho cyklus vydávání. Pokud framework přestane podporovat nějakou verzi PHP nebo se sám přestane udržovat, každá aktualizace zdražuje.

Většina moderních frameworků se instaluje přes Composer a drží se standardů skupiny PHP-FIG, například PSR-4 pro autoloading nebo PSR-7 pro zprávy HTTP.

Známé frameworky PHP v porovnání

Následující přehled využívá sebepopisy projektů na jejich úvodních stránkách. Hodnocení podle oblíbenosti nebo podílu na trhu záměrně vynecháváme, protože pro ně neexistuje spolehlivý společný zdroj.

Framework Sebepopis (volně) Typické nasazení
Laravel framework s „bateriemi v ceně“ pro webové aplikace individuální vývoj, portály, SaaS
Symfony výkonný framework s opakovaně použitelnými komponentami velké, dlouhověké aplikace; komponenty v jiných projektech
Laminas komunitně udržované pokračování Zend Framework podnikové aplikace, middleware
CodeIgniter malý framework se silnými funkcemi menší aplikace, nízká vstupní bariéra
Yii framework pro rychlý vývoj moderních aplikací webové aplikace, základ některých CMS
CakePHP framework s jasnými konvencemi MVC klasické databázové aplikace
Slim mikroframework pro webové aplikace a API štíhlá API, služby middleware

Symfony uvádí na své úvodní stránce Drupal, Laravel, API Platform a Composer jako projekty, které používají komponenty Symfony. Framework tedy často sídlí i tam, kde ho přímo nevidíte. Jak to vypadá u CMS a e-shopů, ukazuje stránka CMS a e-shopové systémy na PHP.

Společné stavební prvky téměř všech frameworků

Přes odlišnou filozofii sdílí většina frameworků stejnou stavbu. Všechny požadavky procházejí jediným vstupním bodem, front controllerem, většinou public/index.php. Webový server k němu předává každou adresu, pro kterou neexistuje skutečný soubor.

# Příklad: Nginx předává neznámé cesty front controlleru
root /var/www/app/public;

location / {
    try_files $uri /index.php$is_args$args;
}

U Apache tuto úlohu většinou plní přepisovací pravidlo ve veřejném adresáři, u jiných webových serverů srovnatelné pravidlo. Ve všech případech je důležité, aby webový server ukazoval na adresář public a ne na hlavní adresář projektu. Chybně nastavený kořenový adresář patří k nejčastějším příčinám toho, že se konfigurační soubory náhle stanou veřejně dostupnými.

Výhoda pro bezpečnost: ve webrootu leží jen adresář public. Konfigurace, zdrojový kód a vendor leží o úroveň výš a přes URL nejsou dostupné. Poté přiřazení ke controlleru provede router, middleware kontroluje přihlášení nebo token CSRF a šablonovací systém vytváří výstup s automatickým escapováním.

Jak vybrat framework?

Pro nový vývoj nebo převzetí stávajícího projektu pomáhají tyto otázky:

  1. Údržba a cyklus vydávání: Jak dlouho jsou verze zásobovány bezpečnostními aktualizacemi a existují verze s prodlouženou podporou?
  2. Podpora PHP: Běží používaná verze frameworku na verzi PHP, která sama ještě dostává bezpečnostní aktualizace? To je uvedeno v požadavcích projektu.
  3. Tým a dodavatelé: Zná tým framework a najdete pro něj v nouzi odborníky?
  4. Ekosystém: Existují udržované balíčky pro vaše požadavky, nebo by se muselo mnoho vytvořit samostatně?
  5. Standardy: Pokud se framework drží rozhraní PSR, lze stavební prvky později snáze vyměnit.

Pro projekty Laravel a Symfony máme samostatné stránky o zabezpečení: Zabezpečení aplikací Laravel a Zabezpečení aplikací Symfony.

Co framework pro bezpečnost dokáže a co ne

Frameworky vývojářům odebírají mnoho zdrojů chyb: připravené databázové dotazy proti SQL injection, automatické escapování proti cross-site scripting, ochranu CSRF pro formuláře, bezpečné hashe hesel. Funguje to ale jen tehdy, když tým tyto stavební prvky používá a neobchází je.

Proti PHP2Shell to vše nepomáhá. CVE-2026-109618 a CVE-2026-109619 leží v interpretu PHP. Tým PHP hodnotí riziko u mod_php nejvýše; tam byl předveden exploit dříve, než se vůbec spustí kód aplikace. Framework se tedy vůbec nedostane ke slovu. Pomůže jen aktualizace na PHP 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35 a restart všech procesů PHP.

Důležité

Aktualizace frameworku a aktualizace PHP jsou dva oddělené úkoly. Obě patří do údržby, ale PHP2Shell uzavře jen aktualizace PHP.

U starších projektů přistupuje další riziko: pokud aplikace visí na staré verzi frameworku, často visí i na staré verzi PHP. Pro PHP 8.1 a starší už projekt PHP oficiální aktualizace nevydává.

Jak konkrétně pomáhá PHP SOS?

  • Zjistíme framework, verzi a požadavky na PHP vaší aplikace a ověříme, zda obojí ještě dostává bezpečnostní aktualizace.
  • Zkontrolujeme strukturu: leží ve webrootu jen public, jsou konfigurace a vendor chráněny?
  • Aktualizace frameworku a PHP plánujeme odděleně, testujeme je a nasazujeme s restartem všech workerů.
  • Pro individuální vývoj nabízíme bezpečnostní audit a penetrační test, který cíleně ověřuje využití ochranných funkcí frameworku.

Časté dotazy

Který framework PHP je nejlepší?

Záleží na projektu. Rozhodující jsou velikost a životnost aplikace, znalosti v týmu, údržba ze strany projektu a podpora aktuálních verzí PHP. Dobře udržovaný framework, který tým zná, je většinou lepší volbou než ten, který je zrovna nejoblíbenější.

Chrání framework před PHP2Shell?

Ne. PHP2Shell leží v interpretu PHP a podle týmu PHP byl u mod_php předveden exploit dříve, než se vůbec spustí kód aplikace. Žádná aktualizace frameworku nenahradí aktualizaci běhového prostředí PHP a restart všech workerů.

Co je mikroframework?

Mikroframework dodává jen jádro, typicky směrování, middleware a objekty požadavku a odpovědi. Přístup k databázi, šablony nebo formuláře si k tomu zvolíte sami. Slim se například sám označuje jako mikroframework pro PHP.

Co znamená, když CMS používá komponenty Symfony?

Používá jednotlivé stavební prvky Symfony, například pro zpracování HTTP nebo konzoli, aniž by převzalo celý framework. Bezpečnostní hlášení k těmto komponentám se pak týkají i CMS, což je důležité při plánování aktualizací.

Zdroje

Okamžitý kontakt

Každá hodina se počítá. Napište nám hned.

Stručně popište systém, verzi PHP a pozorování. Ozveme se, vyjasníme situaci a budeme pracovat na dálku, dokud nebude incident uzavřen a zdokumentován.

Okamžitá pomoc