Aktualna sytuacja: PHP2Shell. Dwie krytyczne luki w PHP (CVSS 9,2) umożliwiają wykonanie złośliwego kodu bez logowania. Poprawki od 21.10.2026.Co należy teraz zrobić →

Frameworki PHP w skrócie

Frameworki nadają aplikacjom PHP strukturę, routing i elementy bezpieczeństwa. Przegląd pokazuje znane frameworki, kryteria wyboru i granice ich ochrony.

Stan 4 min czytaniaWiedza o PHP

Krótko: Framework PHP to szkielet z kodu wielokrotnego użytku, który rozwiązuje typowe zadania aplikacji internetowej: kierowanie żądań do właściwego kodu, przetwarzanie danych z formularzy, komunikację z bazami danych, generowanie wyjścia. Znane frameworki PHP to Laravel, Symfony, Laminas, CodeIgniter, Yii, CakePHP i Slim. Framework wnosi elementy bezpieczeństwa, ale nie chroni przed lukami w interpreterze PHP, takimi jak PHP2Shell.

Czym jest framework PHP?

Bez frameworka każdy zespół pisze od nowa routing, sprawdzanie formularzy, sesje i obsługę błędów. Framework narzuca na to stałe elementy i konwencje. Oszczędza to czas, czyni kod czytelnym dla nowych programistów i skupia funkcje bezpieczeństwa w jednym miejscu, zamiast rozpraszać je po setkach plików.

Dla zarządu ważny jest przede wszystkim jeden skutek: wybierając framework, wiążą się Państwo na lata z jego cyklem wydawniczym. Jeśli framework nie obsługuje już danej wersji PHP albo sam przestaje być utrzymywany, każda aktualizacja staje się droższa.

Większość nowoczesnych frameworków instaluje się przez Composera i trzyma się standardów PHP-FIG, na przykład PSR-4 dla autoloadingu lub PSR-7 dla komunikatów HTTP.

Znane frameworki PHP w porównaniu

Poniższy przegląd korzysta z własnych opisów projektów na ich stronach głównych. Oceny według popularności lub udziału w rynku celowo pomijamy, ponieważ nie ma na to wiarygodnego wspólnego źródła.

Framework Własny opis (w przybliżeniu) Typowe zastosowanie
Laravel framework z „bateriami w komplecie” dla aplikacji internetowych własne rozwiązania, portale, SaaS
Symfony wydajny framework z komponentami wielokrotnego użytku duże, długowieczne aplikacje; komponenty w innych projektach
Laminas wspólnie utrzymywana kontynuacja Zend Framework aplikacje firmowe, middleware
CodeIgniter mały framework z mocnymi funkcjami mniejsze aplikacje, niski próg wejścia
Yii framework do szybkiego tworzenia nowoczesnych aplikacji aplikacje internetowe, podstawa niektórych CMS
CakePHP framework z jasnymi konwencjami MVC klasyczne aplikacje bazodanowe
Slim mikroframework dla aplikacji internetowych i API smukłe API, usługi middleware

Symfony wymienia na swojej stronie głównej Drupal, Laravel, API Platform i Composer jako projekty używające komponentów Symfony. Framework tkwi więc często także tam, gdzie nie widać go bezpośrednio. Jak to wygląda w CMS i sklepach, pokazuje strona CMS i systemy sklepowe na PHP.

Wspólne elementy niemal wszystkich frameworków

Mimo różnej filozofii większość frameworków dzieli podobną budowę. Wszystkie żądania przechodzą przez jeden punkt wejścia, front controller, zwykle public/index.php. Serwer WWW przekazuje do tego pliku każdy adres, dla którego nie ma prawdziwego pliku.

# Przykład: Nginx kieruje nieznane ścieżki do front controllera
root /var/www/app/public;

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

W Apache to zadanie przejmuje zwykle reguła przepisywania w folderze publicznym, w innych serwerach WWW porównywalna reguła. Ważne jest we wszystkich przypadkach, aby serwer WWW wskazywał na folder public, a nie na katalog główny projektu. Błędnie ustawiony katalog dokumentów to jedna z najczęstszych przyczyn tego, że pliki konfiguracyjne nagle stają się publicznie dostępne.

Zaleta dla bezpieczeństwa: tylko folder public leży w katalogu głównym WWW. Konfiguracja, kod źródłowy i vendor leżą poziom wyżej i nie są osiągalne przez URL. Potem router przypisuje żądanie do kontrolera, middleware sprawdza logowanie lub token CSRF, a silnik szablonów tworzy wyjście z automatycznym maskowaniem.

Jak wybrać framework?

Przy nowym tworzeniu lub przejęciu istniejącego projektu pomagają te pytania:

  1. Utrzymanie i cykl wydawniczy: Jak długo wersje otrzymują aktualizacje bezpieczeństwa i czy istnieją wersje z wydłużonym wsparciem?
  2. Obsługa PHP: Czy używana wersja frameworka działa na wersji PHP, która sama jeszcze otrzymuje aktualizacje bezpieczeństwa? Wynika to z wymagań projektu.
  3. Zespół i dostawcy usług: Czy zespół zna framework i czy w razie potrzeby znajdą Państwo specjalistów?
  4. Ekosystem: Czy istnieją utrzymywane pakiety dla Państwa wymagań, czy trzeba by wiele zbudować samemu?
  5. Standardy: Jeśli framework trzyma się interfejsów PSR, elementy łatwiej później wymienić.

Dla projektów Laravel i Symfony mamy osobne strony o zabezpieczaniu: Zabezpieczanie aplikacji Laravel i Zabezpieczanie aplikacji Symfony.

Co framework daje dla bezpieczeństwa, a czego nie

Frameworki zdejmują z programistów wiele źródeł błędów: przygotowane zapytania do bazy danych przeciw SQL injection, automatyczne maskowanie przeciw cross-site scripting, ochrona CSRF dla formularzy, bezpieczne skróty haseł. Działa to jednak tylko wtedy, gdy zespół używa tych elementów i ich nie omija.

Przeciw PHP2Shell nic z tego nie pomaga. CVE-2026-109618 i CVE-2026-109619 tkwią w interpreterze PHP. Zespół PHP ocenia ryzyko przy mod_php jako najwyższe; pokazano tam exploit, zanim w ogóle zacznie działać kod aplikacji. Framework nie ma więc w ogóle szansy zadziałać. Pomaga tylko aktualizacja do PHP 8.5.12, 8.4.27, 8.3.36 lub 8.2.35 i restart wszystkich procesów PHP.

Ważne

Aktualizacja frameworka i aktualizacja PHP to dwa osobne zadania. Oba należą do utrzymania, ale tylko aktualizacja PHP zamyka PHP2Shell.

W starszych projektach dochodzi kolejne ryzyko: jeśli aplikacja tkwi przy starej wersji frameworka, tkwi często także przy starej wersji PHP. Dla PHP 8.1 i starszych projekt PHP nie wydaje już oficjalnych aktualizacji.

Jak konkretnie pomaga PHP SOS?

  • Ustalamy framework, wersję i wymagania PHP Państwa aplikacji oraz stwierdzamy, czy oba nadal otrzymują aktualizacje bezpieczeństwa.
  • Sprawdzamy budowę: czy w katalogu głównym WWW leży tylko public, czy konfiguracja i vendor są chronione?
  • Planujemy aktualizacje frameworka i PHP osobno, testujemy je i instalujemy z restartem wszystkich workerów.
  • Dla własnych rozwiązań oferujemy audyt bezpieczeństwa i test penetracyjny, który celowo sprawdza użycie funkcji ochronnych frameworka.

Częste pytania

Który framework PHP jest najlepszy?

Zależy to od projektu. Rozstrzygają wielkość i czas życia aplikacji, wiedza w zespole, utrzymanie przez projekt i obsługa aktualnych wersji PHP. Dobrze utrzymywany framework znany w zespole jest zwykle lepszym wyborem niż akurat najpopularniejszy.

Czy framework chroni przed PHP2Shell?

Nie. PHP2Shell tkwi w interpreterze PHP, a według zespołu PHP w mod_php pokazano exploit, zanim w ogóle zacznie działać kod aplikacji. Żadna aktualizacja frameworka nie zastępuje aktualizacji środowiska PHP i restartu wszystkich workerów.

Czym jest mikroframework?

Mikroframework dostarcza tylko rdzeń, typowo routing, middleware i obiekty żądania i odpowiedzi. Dostęp do bazy danych, szablony lub formularze dobiera się samemu. Slim określa się na przykład sam jako mikroframework dla PHP.

Co znaczy, że CMS używa komponentów Symfony?

Używa pojedynczych elementów Symfony, na przykład do obsługi HTTP lub konsoli, bez przejmowania całego frameworka. Komunikaty bezpieczeństwa dotyczące tych komponentów dotyczą wtedy także CMS, co ma znaczenie przy planowaniu aktualizacji.

Źródła

Kontakt natychmiast

Liczy się każda godzina. Proszę napisać do nas teraz.

Proszę krótko opisać system, wersję PHP i obserwacje. Skontaktujemy się z Państwem, ustalimy sytuację i będziemy pracować zdalnie, aż incydent zostanie zamknięty i udokumentowany.

Natychmiastowa pomoc