PHP-viden: programmeringssproget forklaret
Hvad PHP er, hvordan det genererer en webside, og hvorfor driftsform, konfiguration og version afgør sikkerheden. Forståeligt for beslutningstagere, med dybde til administratorer og udviklere.
Hvad er PHP? Programmeringssproget forklaret
PHP er et scriptsprog, der kører på serveren og genererer HTML dér. Mange CMS- og shopsystemer er bygget på det, så en sårbarhed i PHP berører rigtig mange websites.
Læs videre →02PHP's historie: fra 1994 til i dag
Fra et privat værktøj til en CV-side til grundlaget for mange CMS- og shopsystemer: de vigtigste stationer i PHP's historie med kontrollerede årstal.
Læs videre →03Sådan skaber PHP en webside: forespørgslens vej
Hvad der sker mellem klik og færdig side: webserver, SAPI, compiler, OPcache og Zend VM i syv trin, og hvorfor PHP2Shell sætter ind netop i dette forløb.
Læs videre →04Zend Engine: PHP's hjerte
Zend Engine oversætter PHP-kode til opcodes og udfører dem. Den, der kender dens byggesten, forstår, hvorfor sårbarheder i kernen som PHP2Shell kun rettes af en PHP-opdatering.
Læs videre →05OPcache forklaret: PHP's bytekode-cache
OPcache holder oversat PHP-kode i den delte hukommelse. Det sparer regnetid, men kræver omhu ved deployments, genstarter og på servere med flere kunder.
Læs videre →06SAPI forklaret: sådan taler PHP med webserveren
SAPI er grænsefladen mellem PHP og webserver. Den afgør, hvordan forespørgsler ankommer, hvilken php.ini der gælder, og hvad der skal genstartes efter en opdatering.
Læs videre →07PHP-FPM forklaret: procesmanager, pools og workere
PHP-FPM driver PHP som egen tjeneste med pools og workere. Sådan fungerer procesmodellen, hvilke direktiver der tæller, og hvorfor workere skal genstartes efter opdateringer.
Læs videre →08mod_php forklaret: PHP i Apache-processen
Ved mod_php sidder PHP i hver Apache-proces. Det er enkelt, men ufleksibelt og efter PHP2Shell den mest risikofyldte driftsform. Sådan fungerer den, og sådan genkender I den.
Læs videre →09CGI og FastCGI: grundlæggende
CGI starter en proces for hver forespørgsel, FastCGI holder processer i live. Hvad det betyder for PHP, php-cgi og PHP-FPM, og hvilke indstillinger der berører sikkerheden.
Læs videre →10PHP på kommandolinjen (CLI)
PHP CLI udfører scripts uden webserver, f.eks. til cronjobs og vedligeholdelse. Den opfører sig anderledes end webversionen og viser ofte ikke den status, jeres website bruger.
Læs videre →11php.ini forklaret: opbygning, niveauer og forrang
Hvor PHP finder sine indstillinger, i hvilken rækkefølge de slår igennem, og hvem der må overskrive dem. Grundlaget for enhver hærdning og for overgangsforanstaltningerne til PHP2Shell.
Læs videre →12PHP-versioner og udgivelsescyklus
Hvert år i november udkommer en ny PHP-version, som vedligeholdes i fire år. Hvilke grene der slutter hvornår, og hvad det efter PHP2Shell betyder for jeres planlægning.
Læs videre →13PHP 8.0 til 8.5: de vigtigste nyheder
Fra match og JIT i PHP 8.0 til pipe-operator og URI-udvidelse i PHP 8.5: nyhederne i hver version, faldgruberne ved opgradering og hvad de giver for sikkerheden.
Læs videre →14Forstå PHP-udvidelser (extensions)
Udvidelser giver PHP databasedrivere, kryptering eller caches. Sådan adskiller arterne sig, sådan indlæser og kontrollerer I dem, og hvad de betyder for opdateringer og hærdning.
Læs videre →15Composer: pakkestyringen til PHP
Composer henter og administrerer de biblioteker, moderne PHP-projekter bygger på. Den, der forstår composer.json, composer.lock og autoloaderen, leverer reproducerbart og mere sikkert.
Læs videre →16PHP-frameworks i overblik
Frameworks giver PHP-applikationer struktur, routing og sikkerhedsbyggesten. Dette overblik viser de kendte frameworks, udvælgelseskriterier og grænserne for deres beskyttelse.
Læs videre →17Hvilke CMS og shopsystemer der kører på PHP
Mange kendte CMS, shops og virksomhedsapplikationer kører på PHP. Sådan vurderer I, hvilke af jeres websites der kan være berørt af PHP-sårbarheder som PHP2Shell.
Læs videre →18PHP og databaser: PDO og mysqli
PHP taler med databaser via PDO eller mysqli. Her ser I forskellene, sikre forespørgsler med prepared statements og hvad der er at gøre med databaseadgange efter en serverhændelse.
Læs videre →19Sessioner og cookies i PHP
Sessioner gør den tilstandsløse HTTP til et login, der holder over flere sider. Her står, hvordan PHP løser det internt, hvilke standardværdier der gælder, og hvad session.upload_progress har med PHP2Shell at gøre.
Læs videre →20Superglobals: $_GET, $_POST, $_FILES m.fl.
Superglobals er de arrays, hvormed PHP-kode når forespørgselsdata. Den, der ved, hvordan PHP udfylder dem, og hvilke grænser der gælder, skriver sikrere kode og forstår PHP2Shell bedre.
Læs videre →21Sådan håndterer PHP filuploads
Mellem klikket på Upload og jeres kode ligger en hel behandlingskæde i PHP. Siden forklarer multipart/form-data, midlertidige filer, $_FILES, grænseværdier og sammenhængen med PHP2Shell.
Læs videre →22PHP's typesystem
PHP er dynamisk typet, men har siden PHP 7 fået et stadig strengere typesystem. Her ser I typerne, de vigtigste versioner og hvorfor strikte sammenligninger forebygger sikkerhedsfejl.
Læs videre →23Fejl og exceptions i PHP
PHP kender klassiske fejlmeddelelser og exceptions. Siden forklarer Throwable-hierarkiet, ren fejlhåndtering, sikre indstillinger til produktion og PHP2Shell-foranstaltningen om fatal_error_backtraces.
Læs videre →24Objektorientering i PHP
Moderne PHP-applikationer er næsten altid objektorienterede. Siden forklarer byggestenene, nyhederne fra PHP 8.0 til 8.4 og hvorfor magiske metoder spiller en rolle for sikkerheden.
Læs videre →25Namespaces og autoloading (PSR-4)
Namespaces ordner PHP-kode, autoloading indlæser klasser netop når de er brug for. Her ser I, hvordan PSR-4 afbilder klassenavne på filer, og hvorfor autoloaderen skal kontrolleres efter en hændelse.
Læs videre →26PSR-standarder fra PHP-FIG
PSR'er er fælles standarder, som mange PHP-projekter er blevet enige om. Siden lister alle PSR'er med status og viser, hvilke der tæller i hverdagen, og hvor de berører sikkerheden.
Læs videre →27Hukommelsesstyring i PHP: referencetælling og garbage collection
PHP administrerer hukommelse med referencetælling og en garbage collector til cyklusser. Siden forklarer mekanikken, de vigtigste målefunktioner og hvorfor begge PHP2Shell-sårbarheder har med hukommelsestilstande at gøre.
Læs videre →28memory_limit og out-of-memory: Hvad der sker indeni
Hvad sker der, når et PHP-script når memory_limit? Mekanikken, den nye hårde hukommelsesgrænse siden oktober-patchene og sammenhængen med CVE-2026-109618.
Læs videre →29Request-livscyklussen: startup, udførelse, shutdown
Hvordan PHP starter processer, behandler forespørgsler og rydder op imellem. Med faserne MINIT til MSHUTDOWN og sammenhængen med CVE-2026-109619.
Læs videre →30JIT og ydelse i PHP 8
JIT-compileren oversætter PHP til maskinkode siden 8.0. For typiske websites giver den lidt; OPcache, aktuelle versioner og ren konfiguration giver mere.
Læs videre →31Test PHP-kode: PHPUnit og Pest
PHPUnit er standardværktøjet til PHP-tests, Pest bygger oven på det. Den, der har tests, kan indspille sikkerhedsopdateringer og versionsskift hurtigere og med mindre risiko.
Læs videre →32Statisk analyse: PHPStan og Psalm
PHPStan og Psalm finder fejl i PHP-koden, uden at den udføres. Psalm sporer desuden usikre dataflow. Sårbarheder i selve PHP-fortolkeren finder ingen af dem.
Læs videre →33PHP's indbyggede sikkerhedsfunktioner
PHP har sikre byggesten med til adgangskoder, tilfældige værdier, maskering, kryptografi og sessioner. Den, der bruger dem konsekvent, undgår de hyppigste applikationsfejl.
Læs videre →34Udvikl PHP lokalt: Docker, DDEV og co.
Til lokal PHP-udvikling findes den indbyggede webserver, officielle Docker-images og værktøjer som DDEV. Vigtigt er, at lokalt kører samme PHP-version som live.
Læs videre →35PHP sammenlignet med Node.js, Python og Java
PHP, Node.js, Python og Java adskiller sig først og fremmest i kørselsmodel og drift. Intet sprog er i sig selv sikrere; afgørende er vedligeholdelse og patch-proces.
Læs videre →36Sådan behandler PHP-projektet sikkerhedssårbarheder
Sårbarheder i PHP indberettes fortroligt, klassificeres, rettes i udgivelsen og offentliggøres som GitHub Security Advisory. PHP2Shell viser forløbet i alvorlige tilfælde.
Læs videre →37Kompilér PHP fra kildekoden
PHP kan bygges selv med configure og make. Det giver kontrol over udvidelser og indstillinger, men også det fulde ansvar for hver sikkerhedsopdatering.
Læs videre →38Kør PHP i containere
PHP i container kræver den passende image-variant, en produktionskonfiguration, fornuftige hukommelsesgrænser og en proces, der bygger images på ny ved hver sikkerhedsudgivelse.
Læs videre →39PHP's fremtid
PHP udvikles efter faste regler: fire års understøttelse pr. version, PHP 8.6 er planlagt til 19.11.2026, til PHP 9.0 findes der vedtagne RFC'er, men ingen dato.
Læs videre →40PHP-grundviden for administratorer
Hvad administratorer skal vide om PHP: hvilke binærer der kører, hvordan konfiguration virker, hvordan FPM-pools arbejder, og hvilke kommandoer der hjælper ved opdateringer som den til PHP2Shell.
Læs videre →Hver time tæller. Skriv til os nu.
Beskriv kort system, PHP-version og observation. Vi vender tilbage, afklarer situationen og arbejder på afstand, indtil hændelsen er afsluttet og dokumenteret.