Aktuel situation: PHP2Shell. To kritiske PHP-sårbarheder (CVSS 9,2) tillader skadelig kode uden login. Rettelser siden 21.10.2026.Hvad der skal gøres nu →
40 sider

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.

01

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 →
02

PHP'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 →
03

Så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 →
04

Zend 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 →
05

OPcache 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 →
06

SAPI 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 →
07

PHP-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 →
08

mod_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 →
09

CGI 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 →
10

PHP 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 →
11

php.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 →
12

PHP-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 →
13

PHP 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 →
14

Forstå 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 →
15

Composer: 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 →
16

PHP-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 →
17

Hvilke 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 →
18

PHP 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 →
19

Sessioner 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 →
20

Superglobals: $_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 →
21

Så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 →
22

PHP'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 →
23

Fejl 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 →
24

Objektorientering 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 →
25

Namespaces 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 →
26

PSR-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 →
27

Hukommelsesstyring 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 →
28

memory_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 →
29

Request-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 →
30

JIT 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 →
31

Test 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 →
32

Statisk 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 →
33

PHP'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 →
34

Udvikl 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 →
35

PHP 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 →
36

Så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 →
37

Kompilé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 →
38

Kø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 →
39

PHP'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 →
40

PHP-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 →
Akut kontakt

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.

Akut hjælp