Actuele situatie: PHP2Shell. Twee kritieke PHP-kwetsbaarheden (CVSS 9.2) maken schadelijke code zonder inloggen mogelijk. Patches sinds 21-10-2026.Wat u nu moet doen →
40 pagina's

PHP-kennis: de programmeertaal uitgelegd

Wat PHP is, hoe het een webpagina genereert en waarom uitvoeringsmodus, configuratie en versie de beveiliging bepalen. Begrijpelijk voor beslissers, met diepgang voor beheerders en ontwikkelaars.

01

Wat is PHP? De programmeertaal uitgelegd

PHP is een scripttaal die op de server draait en daar HTML genereert. Veel CMS'en en webshops zijn erop gebouwd, daarom treft een lek in PHP heel veel websites.

Lees verder →
02

De geschiedenis van PHP: van 1994 tot nu

Van een privéhulpmiddel voor een cv-pagina tot de basis van veel CMS'en en webshops: de belangrijkste mijlpalen uit de geschiedenis van PHP met gecontroleerde jaartallen.

Lees verder →
03

Hoe PHP een webpagina genereert: de weg van een verzoek

Wat er tussen klik en kant-en-klare pagina gebeurt: webserver, SAPI, compiler, OPcache en Zend VM in zeven stappen, en waarom PHP2Shell precies in dit verloop aangrijpt.

Lees verder →
04

De Zend Engine: het hart van PHP

De Zend Engine vertaalt PHP-code naar opcodes en voert die uit. Wie de bouwstenen kent, begrijpt waarom lekken in de kern zoals PHP2Shell alleen met een PHP-update verholpen worden.

Lees verder →
05

OPcache uitgelegd: de bytecodecache van PHP

OPcache houdt vertaalde PHP-code in het gedeelde geheugen. Dat bespaart rekentijd, maar vraagt zorgvuldigheid bij deployments, herstarts en op servers met meerdere klanten.

Lees verder →
06

SAPI uitgelegd: hoe PHP met de webserver praat

De SAPI is de interface tussen PHP en webserver. Ze bepaalt hoe verzoeken binnenkomen, welke php.ini geldt en wat na een update opnieuw moet starten.

Lees verder →
07

PHP-FPM uitgelegd: procesmanager, pools en workers

PHP-FPM draait PHP als eigen dienst met pools en workers. Zo werkt het procesmodel, welke directives tellen en waarom workers na updates opnieuw moeten starten.

Lees verder →
08

mod_php uitgelegd: PHP in het Apache-proces

Bij mod_php zit PHP in elk Apache-proces. Dat is eenvoudig, maar weinig flexibel en na PHP2Shell de riskantste uitvoeringsmodus. Zo werkt ze en zo herkent u haar.

Lees verder →
09

CGI en FastCGI: de basis

CGI start voor elk verzoek een proces, FastCGI houdt processen in leven. Wat dat voor PHP, php-cgi en PHP-FPM betekent en welke instellingen de beveiliging raken.

Lees verder →
10

PHP op de opdrachtregel (CLI)

De PHP-CLI voert scripts uit zonder webserver, bijvoorbeeld voor cronjobs en onderhoud. Ze gedraagt zich anders dan de webversie en toont vaak niet de stand die uw website gebruikt.

Lees verder →
11

De php.ini uitgelegd: opbouw, niveaus en voorrang

Waar PHP zijn instellingen vindt, in welke volgorde ze gelden en wie ze mag overschrijven. Basis voor elke hardening en voor de tussenmaatregelen bij PHP2Shell.

Lees verder →
12

PHP-versies en releasecyclus

Elk jaar in november verschijnt een nieuwe PHP-versie die vier jaar wordt onderhouden. Welke takken wanneer eindigen en wat dat na PHP2Shell voor uw planning betekent.

Lees verder →
13

PHP 8.0 tot 8.5: de belangrijkste nieuwigheden

Van match en JIT in PHP 8.0 tot pipe-operator en URI-extensie in PHP 8.5: de nieuwigheden van elke versie, de struikelblokken bij het upgraden en wat ze voor de beveiliging opleveren.

Lees verder →
14

PHP-extensies (extensions) begrijpen

Extensies brengen databasestuurprogramma's, versleuteling of caches in PHP. Zo verschillen de soorten, zo laadt en controleert u ze en dit betekenen ze voor updates en hardening.

Lees verder →
15

Composer: het pakketbeheer voor PHP

Composer laadt en beheert de bibliotheken waarop moderne PHP-projecten voortbouwen. Wie composer.json, composer.lock en de autoloader begrijpt, levert reproduceerbaar en veiliger uit.

Lees verder →
16

PHP-frameworks in overzicht

Frameworks geven PHP-toepassingen structuur, routing en beveiligingsbouwstenen. Dit overzicht toont de bekende frameworks, selectiecriteria en de grenzen van hun bescherming.

Lees verder →
17

Welke CMS'en en webshopsystemen op PHP draaien

Veel bekende CMS'en, webshops en bedrijfstoepassingen draaien op PHP. Zo schat u in welke van uw websites door PHP-lekken als PHP2Shell getroffen kunnen zijn.

Lees verder →
18

PHP en databases: PDO en mysqli

PHP spreekt databases aan via PDO of mysqli. Hier ziet u de verschillen, veilige query's met prepared statements en wat na een serverincident met databasetoegang te doen is.

Lees verder →
19

Sessies en cookies in PHP

Sessies maken van het toestandsloze HTTP een aanmelding die over meerdere pagina's standhoudt. Hier staat hoe PHP dat intern oplost, welke standaardwaarden gelden en wat session.upload_progress met PHP2Shell te maken heeft.

Lees verder →
20

Superglobals: $_GET, $_POST, $_FILES en co.

Superglobals zijn de arrays waarmee PHP-code bij verzoekgegevens komt. Wie weet hoe PHP ze vult en welke grenzen gelden, schrijft veiligere code en begrijpt PHP2Shell beter.

Lees verder →
21

Hoe PHP bestandsuploads verwerkt

Tussen de klik op Uploaden en uw code ligt in PHP een hele verwerkingsketen. Deze pagina legt multipart/form-data, tijdelijke bestanden, $_FILES, limieten en het verband met PHP2Shell uit.

Lees verder →
22

Het typesysteem van PHP

PHP is dynamisch getypeerd, maar heeft sinds PHP 7 een steeds strenger typesysteem gekregen. Hier ziet u de typen, de belangrijkste versies en waarom strikte vergelijkingen beveiligingsfouten voorkomen.

Lees verder →
23

Fouten en exceptions in PHP

PHP kent klassieke foutmeldingen en exceptions. Deze pagina legt de Throwable-hiërarchie, nette foutafhandeling, veilige productie-instellingen en de PHP2Shell-maatregel rond fatal_error_backtraces uit.

Lees verder →
24

Objectoriëntatie in PHP

Moderne PHP-toepassingen zijn bijna altijd objectgeoriënteerd. Deze pagina legt de bouwstenen, de nieuwigheden van PHP 8.0 tot 8.4 en de rol van magische methoden bij beveiliging uit.

Lees verder →
25

Namespaces en autoloading (PSR-4)

Namespaces ordenen PHP-code, autoloading laadt klassen precies op het moment dat ze nodig zijn. Hier ziet u hoe PSR-4 klassenamen op bestanden afbeeldt en waarom de autoloader na een incident moet worden gecontroleerd.

Lees verder →
26

PSR-standaarden van de PHP-FIG

PSR's zijn gemeenschappelijke standaarden waarover veel PHP-projecten het eens zijn geworden. Deze pagina somt alle PSR's met status op en laat zien welke in de praktijk tellen en waar ze de beveiliging raken.

Lees verder →
27

Geheugenbeheer in PHP: referentietelling en garbage collection

PHP beheert geheugen met referentietelling en een garbage collector voor cycli. Deze pagina legt de werking, de belangrijkste meetfuncties en het verband van beide PHP2Shell-lekken met geheugentoestanden uit.

Lees verder →
28

memory_limit en out-of-memory: wat er van binnen gebeurt

Wat gebeurt er als een PHP-script tegen memory_limit aanloopt? Werking, de nieuwe harde geheugengrens sinds de oktoberpatches en het verband met CVE-2026-109618.

Lees verder →
29

De levenscyclus van een verzoek: startup, uitvoering, shutdown

Hoe PHP processen start, verzoeken afhandelt en er tussendoor opruimt. Met de fasen MINIT tot MSHUTDOWN en het verband met CVE-2026-109619.

Lees verder →
30

JIT en prestaties in PHP 8

De JIT-compiler vertaalt PHP sinds 8.0 naar machinecode. Voor typische websites levert hij weinig op; OPcache, actuele versies en een nette configuratie leveren meer.

Lees verder →
31

PHP-code testen: PHPUnit en Pest

PHPUnit is het standaard testgereedschap voor PHP, Pest bouwt erop voort. Wie tests heeft, kan beveiligingsupdates en versiewissels sneller en met minder risico doorvoeren.

Lees verder →
32

Statische analyse: PHPStan en Psalm

PHPStan en Psalm vinden fouten in PHP-code zonder die uit te voeren. Psalm volgt bovendien onveilige gegevensstromen. Lekken in de PHP-interpreter zelf vinden beide niet.

Lees verder →
33

Ingebouwde beveiligingsfuncties van PHP

PHP levert veilige bouwstenen mee voor wachtwoorden, willekeurige waarden, escaping, cryptografie en sessies. Wie ze consequent gebruikt, vermijdt de meest voorkomende toepassingsfouten.

Lees verder →
34

PHP lokaal ontwikkelen: Docker, DDEV en meer

Voor lokale PHP-ontwikkeling zijn er de ingebouwde webserver, officiële Docker-images en hulpmiddelen zoals DDEV. Belangrijk is dat lokaal dezelfde PHP-versie draait als live.

Lees verder →
35

PHP vergeleken met Node.js, Python en Java

PHP, Node.js, Python en Java verschillen vooral in uitvoeringsmodel en bedrijfsvoering. Geen taal is op zich veiliger; beslissend zijn onderhoud en patchproces.

Lees verder →
36

Hoe het PHP-project beveiligingslekken behandelt

Beveiligingslekken in PHP worden vertrouwelijk gemeld, ingedeeld, in de release verholpen en als GitHub Security Advisory gepubliceerd. PHP2Shell toont het verloop in een noodgeval.

Lees verder →
37

PHP uit de broncode compileren

PHP kunt u zelf bouwen met configure en make. Dat geeft controle over extensies en opties, maar ook de volle verantwoordelijkheid voor elke beveiligingsupdate.

Lees verder →
38

PHP in containers draaien

PHP in een container vraagt om de passende imagevariant, een productieconfiguratie, zinvolle geheugengrenzen en een proces dat images bij elke beveiligingsrelease opnieuw bouwt.

Lees verder →
39

De toekomst van PHP

PHP wordt volgens vaste regels doorontwikkeld: vier jaar ondersteuning per versie, PHP 8.6 staat gepland voor 19 november 2026, voor PHP 9.0 zijn er aangenomen RFC's, maar geen datum.

Lees verder →
40

PHP-basiskennis voor beheerders

Wat beheerders over PHP moeten weten: welke binaries draaien, hoe configuratie werkt, hoe FPM-pools functioneren en welke opdrachten helpen bij updates zoals die voor PHP2Shell.

Lees verder →
Direct contact

Elk uur telt. Schrijf ons nu.

Beschrijf kort het systeem, de PHP-versie en wat u opmerkt. Wij nemen contact op, brengen de situatie in kaart en werken op afstand tot het incident is afgerond en gedocumenteerd.

Directe hulp