Aktuellt läge: PHP2Shell. Två kritiska PHP-sårbarheter (CVSS 9,2) tillåter skadlig kod utan inloggning. Patchar sedan den 21 oktober 2026.Vad som bör göras nu →

PHP-ramverk i översikt

Ramverk ger PHP-applikationer struktur, routing och säkerhetsbyggstenar. Översikten visar de kända ramverken, urvalskriterier och gränserna för deras skydd.

Aktualitet 4 min läsningPHP-kunskap

Kort sagt: Ett PHP-ramverk är ett grundramverk av återanvändbar kod som redan löser typiska uppgifter i en webbapplikation: föra förfrågningar till rätt kod, bearbeta data från formulär, tala med databaser, skapa utdata. Kända PHP-ramverk är Laravel, Symfony, Laminas, CodeIgniter, Yii, CakePHP och Slim. Ett ramverk har säkerhetsbyggstenar med sig men skyddar inte mot sårbarheter i PHP-tolken som PHP2Shell.

Vad är ett PHP-ramverk?

Utan ramverk skriver varje team routing, formulärkontroll, sessioner och felhantering på nytt. Ett ramverk ger fasta byggstenar och konventioner för det. Det sparar tid, gör koden läsbar för nya utvecklare och samlar säkerhetsfunktioner på ett ställe i stället för att sprida dem över hundratals filer.

För ledningen är framför allt en följd viktig: Med valet av ramverk binder ni er i åratal vid dess releasecykel. Om ramverket inte längre stöder en PHP-version eller självt inte längre underhålls blir varje uppdatering dyrare.

De flesta moderna ramverk installeras via Composer och följer standarder från PHP-FIG, till exempel PSR-4 för autoloading eller PSR-7 för HTTP-meddelanden.

De kända PHP-ramverken i jämförelse

Följande översikt använder projektens självbeskrivningar på deras startsidor. Värderingar efter popularitet eller marknadsandel utelämnar vi medvetet, eftersom det saknas en tillförlitlig gemensam källa för dem.

Ramverk Självbeskrivning (i sak) Typisk användning
Laravel ramverk med ”batterier ingår” för webbapplikationer egenutvecklade lösningar, portaler, SaaS
Symfony kraftfullt ramverk med återanvändbara komponenter stora, långlivade applikationer; komponenter i andra projekt
Laminas gemensamt underhållen fortsättning på Zend Framework företagsapplikationer, middleware
CodeIgniter litet ramverk med starka funktioner mindre applikationer, låg ingångströskel
Yii ramverk för snabb utveckling av moderna applikationer webbapplikationer, grund för enskilda CMS
CakePHP ramverk med tydliga MVC-konventioner klassiska databasapplikationer
Slim mikroramverk för webbapplikationer och API:er slimmade API:er, middleware-tjänster

Symfony nämner på sin startsida Drupal, Laravel, API Platform och Composer som projekt som använder Symfony-komponenter. Ett ramverk finns alltså ofta också där man inte direkt ser det. Hur det ser ut hos CMS och butiker visar sidan CMS och butikssystem på PHP.

Gemensamma byggstenar i nästan alla ramverk

Trots olika filosofi delar de flesta ramverk en uppbyggnad. Alla förfrågningar går via en enda ingångspunkt, front controller, oftast public/index.php. Webbservern för dit vidare varje adress som det inte finns någon verklig fil för.

# Exempel: Nginx leder okända sökvägar till front controller
root /var/www/app/public;

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

Med Apache sköts den uppgiften oftast av en omskrivningsregel i den publika mappen, med andra webbservrar av en jämförbar regel. Viktigt i alla fall är att webbservern pekar på mappen public och inte på projektets huvudkatalog. En felsatt dokumentkatalog hör till de vanligaste orsakerna till att konfigurationsfiler plötsligt kan hämtas offentligt.

Fördelen för säkerheten: Bara mappen public ligger i webbroten. Konfiguration, källkod och vendor ligger en nivå ovanför och är inte nåbara via URL. Därefter tar routern hand om kopplingen till en controller, middleware kontrollerar inloggning eller CSRF-token, och en mallmotor skapar utdata med automatisk maskering.

Hur väljer man ett ramverk?

För en nyutveckling eller övertagande av ett befintligt projekt hjälper dessa frågor:

  1. Underhåll och releasecykel: Hur länge får versioner säkerhetsuppdateringar, och finns det versioner med förlängt stöd?
  2. PHP-stöd: Körs den använda ramverksversionen på en PHP-version som själv fortfarande får säkerhetsuppdateringar? Det står i projektets krav.
  3. Team och leverantörer: Känner teamet till ramverket, och hittar ni vid nödfall fackfolk för det?
  4. Ekosystem: Finns det underhållna paket för era krav, eller skulle mycket behöva byggas själv?
  5. Standarder: Följer ramverket PSR-gränssnitt blir byggstenar lättare att byta ut senare.

För Laravel- och Symfony-projekt har vi egna sidor om säkring: Säkra Laravel-applikationer och Säkra Symfony-applikationer.

Vad ett ramverk ger för säkerheten och vad det inte ger

Ramverk tar bort många felkällor för utvecklare: förberedda databasfrågor mot SQL-injektion, automatisk maskering mot cross-site scripting, CSRF-skydd för formulär, säkra lösenordshashar. Det fungerar dock bara om teamet använder de här byggstenarna och inte går förbi dem.

Mot PHP2Shell hjälper allt detta inte. CVE-2026-109618 och CVE-2026-109619 ligger i PHP-tolken. PHP-teamet bedömer risken som högst vid mod_php; där visades en exploit innan någon applikationskod alls körs. Ramverket kommer alltså aldrig till användning. Avhjälpa kan bara uppdateringen till PHP 8.5.12, 8.4.27, 8.3.36 eller 8.2.35 och omstart av alla PHP-processer.

Viktigt

En ramverksuppdatering och en PHP-uppdatering är två skilda uppgifter. Båda hör hemma i underhållet, men bara PHP-uppdateringen täpper till PHP2Shell.

För äldre projekt tillkommer ytterligare en risk: Hänger en applikation fast vid en gammal ramverksversion hänger den ofta också fast vid en gammal PHP-version. För PHP 8.1 och äldre finns inga officiella uppdateringar från PHP-projektet längre.

Hur hjälper PHP SOS konkret?

  • Vi tar reda på ramverk, version och PHP-krav i er applikation och fastställer om båda fortfarande får säkerhetsuppdateringar.
  • Vi granskar uppbyggnaden: Ligger bara public i webbroten, är konfiguration och vendor skyddade?
  • Vi planerar ramverks- och PHP-uppdateringar var för sig, testar dem och installerar dem med omstart av alla workers.
  • För egenutvecklade lösningar erbjuder vi en säkerhetsgranskning och penetrationstest som riktat kontrollerar användningen av ramverkets skyddsfunktioner.

Vanliga frågor

Vilket PHP-ramverk är bäst?

Det beror på projektet. Avgörande är applikationens storlek och livslängd, teamets kunnande, projektets underhåll och stödet för aktuella PHP-versioner. Ett välunderhållet ramverk som teamet känner till är oftast ett bättre val än det för tillfället mest populära.

Skyddar ett ramverk mot PHP2Shell?

Nej. PHP2Shell ligger i PHP-tolken, och enligt PHP-teamet visades en exploit vid mod_php innan någon applikationskod alls körs. Ingen ramverksuppdatering ersätter uppdateringen av PHP-körmiljön och omstarten av alla workers.

Vad är ett mikroramverk?

Ett mikroramverk levererar bara kärnan, typiskt routing, middleware och förfrågnings-/svarsobjekt. Databasåtkomst, mallar eller formulär väljer man själv till. Slim beskriver sig till exempel självt som ett mikroramverk för PHP.

Vad betyder det när ett CMS använder Symfony-komponenter?

Det använder enskilda byggstenar från Symfony, till exempel för HTTP-hantering eller konsol, utan att ta över hela ramverket. Säkerhetsmeddelanden om de komponenterna berör då också CMS:et, vilket spelar roll vid uppdateringsplaneringen.

Källor

Direktkontakt

Varje timme räknas. Skriv till oss nu.

Beskriv kort system, PHP-version och observation. Vi hör av oss, klarlägger läget och arbetar på distans tills incidenten är avslutad och dokumenterad.

Direkthjälp