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.
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 →02De 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 →03Hoe 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 →04De 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 →05OPcache 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 →06SAPI 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 →07PHP-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 →08mod_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 →09CGI 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 →10PHP 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 →11De 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 →12PHP-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 →13PHP 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 →14PHP-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 →15Composer: 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 →16PHP-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 →17Welke 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 →18PHP 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 →19Sessies 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 →20Superglobals: $_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 →21Hoe 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 →22Het 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 →23Fouten 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 →24Objectorië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 →25Namespaces 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 →26PSR-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 →27Geheugenbeheer 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 →28memory_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 →29De 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 →30JIT 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 →31PHP-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 →32Statische 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 →33Ingebouwde 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 →34PHP 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 →35PHP 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 →36Hoe 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 →37PHP 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 →38PHP 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 →39De 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 →40PHP-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 →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.