PHP-Migration nach PHP2Shell: Upgrade oder Sprachwechsel?

PHP-Migration nach PHP2Shell: Upgrade oder Sprachwechsel?

Kritische Lücken, das Support-Ende von PHP 8.2 und KI-gestützte Migrationen nach Java: drei Wege für alte PHP-Anwendungen und wann welcher passt

Aktualisiert:

Abstract

PHP2Shell und das Support-Ende von PHP 8.2: Was Sie jetzt patchen sollten, wie ein Upgrade auf 8.4 oder 8.5 gelingt und wann ein Sprachwechsel sinnvoll ist.
  • #PHP
  • #PHP-Migration
  • #Sicherheit
  • #Sicherheitslücken
  • #Legacy-Modernisierung
  • #Laravel
  • #Symfony
  • #Java
  • #PHP-Upgrade

Gefährlich ist nicht PHP, sondern eine veraltete PHP-Version. Wer das trennt, trifft bessere Entscheidungen über Upgrade, Übergang und Neubau.

Ende Oktober 2026 lag in vielen IT-Abteilungen dieselbe Meldung auf dem Tisch: zwei kritische Sicherheitslücken in PHP, über die Angreifer im schlimmsten Fall eigenen Code auf dem Server ausführen können. In der Sicherheitsszene bekamen sie schnell einen griffigen Namen, „PHP2Shell“. Betroffen ist nicht eine bestimmte Anwendung, sondern der PHP-Interpreter selbst, also das Programm, das jede PHP-Anwendung ausführt. Damit stehen der Firmenauftritt auf WordPress, der Onlineshop mit Shopware und die über Jahre gewachsene Eigenentwicklung gleichermaßen auf der Liste.

Fast zeitgleich veröffentlichte AWS eine Anleitung, wie sich PHP-Anwendungen mit KI-Unterstützung nach Java übertragen lassen. Und am 31. Dezember 2026 endet der Sicherheitssupport für PHP 8.2. Wer diese drei Nachrichten nebeneinanderlegt, könnte schließen, PHP sei ein Auslaufmodell. Das wäre ein Fehlschluss. Das Sicherheitsproblem sind veraltete PHP-Versionen, nicht die Sprache. Welche Konsequenzen sich daraus ergeben, hängt von Ihrer Ausgangslage ab.

Was über PHP2Shell bekannt ist

Am 21. Oktober 2026 veröffentlichte das PHP-Projekt die Versionen 8.5.12, 8.4.27, 8.3.36 und 8.2.35. Sie schließen zwei Lücken, die als kritisch eingestuft sind, beide mit einem CVSS-Wert von 9,2. CVSS ist eine Skala von 0 bis 10, mit der Schwachstellen nach Schwere bewertet werden.

  • CVE-2026-109618 betrifft die Behandlung von Speicherengpässen (Out of Memory). Ein Speicherfehler in diesem Pfad lässt sich zur Codeausführung missbrauchen.
  • CVE-2026-109619 beruht auf veraltetem globalem Zustand, also auf internen Daten, die nach einer Anfrage nicht sauber zurückgesetzt werden. Auch hier ist Codeausführung möglich.

Alle Versionen vor diesen Fix-Releases gelten als verwundbar. Laut dem Sicherheitsunternehmen watchTowr reicht das zurück bis in die längst nicht mehr gepflegten Zweige von PHP 5. Sicherheitsforscher berichten zudem von Angriffen, die die Lücken bereits ausnutzen, und die US-Behörde CISA führt beide seit dem 26. Oktober 2026 in ihrem Katalog aktiv ausgenutzter Schwachstellen. Das europäische CERT-EU nennt außerdem eine dritte Lücke, CVE-2026-115560, zu der es noch keine Details gibt. Das PHP-Team hat angekündigt, sie mit dem nächsten Release vollständig zu beschreiben.

Was jetzt sofort zu tun ist

Für Systeme mit einer unterstützten PHP-Version ist die Lösung unspektakulär: Patch-Release einspielen. Der Teufel steckt in der Frage, wo überall PHP läuft.

  1. Version prüfen, und zwar auf jedem Server, nicht nur auf dem Entwicklungsrechner. php -v zeigt die Kommandozeilenversion. Der Webserver nutzt oft eine eigene Installation, etwa PHP-FPM (der Prozessmanager, der PHP-Anfragen für Nginx oder Apache abarbeitet).
  2. Container-Images neu bauen. Ein Docker-Image enthält eine feste PHP-Version. Solange niemand es neu baut und ausrollt, läuft dort der alte Stand weiter, auch wenn der Host längst aktualisiert ist.
  3. Distributionspakete aktualisieren. Wer PHP aus den Paketquellen von Debian, Ubuntu oder Red Hat bezieht, bekommt die Korrekturen über die Distribution. Deren Versionsnummern weichen oft von den offiziellen ab, entscheidend ist der Hinweis im Änderungsprotokoll des Pakets.
  4. Hoster fragen. Bei Shared Hosting oder Managed Hosting liegt das Update beim Anbieter. Lassen Sie sich bestätigen, dass es eingespielt ist.

Angenommen, ein Mittelständler betreibt seinen Shop auf PHP 8.3. Dann bedeutet PHP2Shell ein Update auf 8.3.36, einen Neustart von PHP-FPM und einen kurzen Funktionstest. Ein Projekt ist das nicht.

Der Support-Kalender: welche PHP-Versionen noch Updates bekommen

Schwierig wird es für alle, deren Version gar keine Korrekturen mehr erhält. Seit 2024 gilt beim PHP-Projekt ein fester Rhythmus: zwei Jahre aktiver Support mit Fehlerbehebungen, danach zwei Jahre reine Sicherheitsupdates. Beide Phasen enden jeweils am 31. Dezember.

VersionVeröffentlichtStatus Anfang November 2026Sicherheitsupdates bis
PHP 8.520.11.2025aktiver Support31.12.2029
PHP 8.421.11.2024aktiver Support bis 31.12.202631.12.2028
PHP 8.323.11.2023nur Sicherheitsupdates31.12.2027
PHP 8.208.12.2022nur Sicherheitsupdates31.12.2026
PHP 8.1–keine Updates mehrendete am 31.12.2025
PHP 8.0 und 7.4–keine Updates mehrschon länger beendet

PHP 8.6 befindet sich in der Testphase. Für Produktivsysteme spielt es noch keine Rolle.

„End of Life“ heißt praktisch: Das PHP-Projekt veröffentlicht für diese Version keine Releases mehr, auch nicht bei kritischen Lücken. Für PHP 8.1 und ältere Versionen gibt es deshalb kein offizielles Release gegen PHP2Shell. Wegen der Schwere der Lücken hat das PHP-Sicherheitsteam lediglich minimale Korrekturen im Quellcode für PHP 7.4, 8.0 und 8.1 bereitgestellt, gedacht für alle, die PHP selbst kompilieren. Hinzu kommt ein Effekt, der oft unterschätzt wird: Frameworks und Bibliotheken stellen die Unterstützung alter PHP-Versionen ebenfalls ein. Wer auf PHP 7.4 festhängt, bekommt meist auch keine Sicherheitsupdates mehr für Laravel, Symfony oder die eingesetzten Composer-Pakete.

Weg 1: Upgrade auf PHP 8.4 oder 8.5

Für die meisten Anwendungen ist das Versions-Upgrade der naheliegende Weg. Das Ziel sollte eine Version mit möglichst langer Restlaufzeit sein, also 8.4 oder 8.5. Ein Sprung auf 8.3 löst das Problem nur für ein gutes Jahr.

Ein Vorgehen, das sich bewährt

Ein Upgrade ist keine Frage des Mutes, sondern der Vorbereitung. Sinnvoll ist diese Reihenfolge:

  1. Bestandsaufnahme: Welche PHP-Version läuft wo, welche Erweiterungen sind installiert, welche Cronjobs und Hintergrundprozesse gibt es?
  2. Abhängigkeiten prüfen: composer outdated zeigt veraltete Pakete, composer audit meldet Pakete mit bekannten Sicherheitslücken. Oft blockiert nicht der eigene Code das Upgrade, sondern eine Bibliothek, die seit Jahren keine neue Version bekommen hat.
  3. Statische Analyse: Werkzeuge wie PHPStan oder Psalm lesen den Code, ohne ihn auszuführen, und finden Typfehler und Aufrufe entfernter Funktionen. PHPCompatibility, eine Regelsammlung für PHP_CodeSniffer, prüft gezielt, welche Stellen mit einer Zielversion kollidieren.
  4. Automatisierte Umbauten: Rector schreibt Code nach festen Regeln um, etwa veraltete Syntax in die aktuelle Form. Das spart viel Handarbeit und ist wiederholbar.
  5. Tests: Ohne automatisierte Tests bleibt jedes Upgrade ein Blindflug. Wo keine existieren, helfen zunächst einige Ende-zu-Ende-Tests für die wichtigsten Abläufe, etwa Anmeldung, Bestellung und Rechnungsversand.
  6. Schrittweise vorgehen: Bei großen Sprüngen lohnt es sich, Zwischenversionen anzusteuern und jede Stufe einzeln zu testen. So bleibt nachvollziehbar, welche Änderung welchen Fehler verursacht.

Eine Rector-Konfiguration für das Ziel PHP 8.4 kann so aussehen:

<?php
// rector.php – Regeln für das Upgrade auf PHP 8.4
use Rector\Config\RectorConfig;

return RectorConfig::configure()
    ->withPaths([
        __DIR__ . '/src',
        __DIR__ . '/tests',
    ])
    // alle Umbauregeln bis einschließlich PHP 8.4
    ->withPhpSets(php84: true)
    // zusätzlich toten Code entfernen und Typangaben ergänzen
    ->withPreparedSets(deadCode: true, typeDeclarations: true);

Mit vendor/bin/rector process --dry-run sehen Sie zunächst nur die vorgeschlagenen Änderungen, ohne dass Dateien angefasst werden. Ebenso wichtig ist die Angabe der Zielplattform in der composer.json. Sie sorgt dafür, dass Composer nur Paketversionen installiert, die zur Produktionsumgebung passen, auch wenn auf dem Entwicklungsrechner eine andere PHP-Version läuft:

{
  "require": {
    "php": "^8.4"
  },
  "config": {
    "platform": {
      "php": "8.4.27"
    }
  }
}

Typische Stolpersteine beim Sprung von 7.4 auf 8.x

Wer von PHP 7.4 kommt, trifft auf einige Änderungen, die alten Code brechen. Mit PHP 8 wurde die Typprüfung strenger: Viele eingebaute Funktionen werfen bei falschen Argumenten einen Fehler, wo sie früher nur eine Warnung ausgaben und weiterliefen. Vergleiche zwischen Zahlen und Zeichenketten verhalten sich anders als zuvor. Etliche Funktionen, die schon länger als veraltet (deprecated) markiert waren, sind entfernt.

Ab PHP 8.2 sind zudem dynamische Properties veraltet. Gemeint sind Eigenschaften, die ein Objekt zur Laufzeit erhält, ohne dass die Klasse sie deklariert. Älterer Code nutzt das häufig, etwa um Datenbankzeilen in beliebige Objekte zu schreiben. PHP gibt dafür vorerst nur Hinweise aus, aber die sollten Sie als Arbeitsliste lesen. Das Attribut #[\AllowDynamicProperties] kann solche Klassen übergangsweise kennzeichnen. Die saubere Lösung bleibt, die Eigenschaften zu deklarieren.

Für Anwendungen auf Laravel oder Symfony kommt das Framework-Upgrade hinzu, denn neuere Framework-Versionen setzen neuere PHP-Versionen voraus und umgekehrt. Bei der Planung hilft der Blick auf die jeweiligen Upgrade-Leitfäden. Für Teams, die diesen Weg zum ersten Mal gehen, bieten wir Beratung und Seminare rund um Laravel an.

Weg 2: Zeit kaufen mit Backports und Extended Support

Nicht jede Anwendung lässt sich bis zum Jahresende umstellen. Dann gibt es zwei Möglichkeiten, Zeit zu gewinnen.

Erstens die Backports der Linux-Distributionen. Debian und andere Distributionen pflegen die PHP-Version, die sie ausgeliefert haben, oft über das offizielle Support-Ende hinaus. Sie übertragen Sicherheitskorrekturen aus neueren Versionen in ihre eigenen Pakete. Für PHP2Shell liefern Distributionen solche gepatchten Pakete auch für Zweige, für die das PHP-Projekt selbst keine Releases mehr veröffentlicht. Voraussetzung ist, dass PHP tatsächlich aus den Paketquellen der Distribution stammt und die Distributionsversion selbst noch gepflegt wird.

Zweitens kommerzieller Extended Support. Verschiedene Anbieter verkaufen Sicherheitsupdates für PHP-Versionen jenseits ihres Lebensendes. Das kann für eine geschäftskritische Anwendung eine vernünftige Brücke sein.

Beide Varianten sind ehrlich betrachtet ein Übergang, kein Ziel. Sie halten den Interpreter sicher, aber nicht das, was darauf läuft. Framework und Bibliotheken veralten trotzdem weiter, neue Paketversionen setzen neuere PHP-Versionen voraus, und mit jedem Monat wird der spätere Sprung größer. Wer diesen Weg wählt, sollte gleichzeitig einen Termin für das Upgrade festlegen.

Weg 3: Sprachwechsel – was der AWS-Ansatz zeigt

Am 29. Oktober 2026 beschrieb AWS in seinem Machine-Learning-Blog, wie sich eine „wiederholbare Migrationsmaschine“ von PHP nach Java bauen lässt. Der Ansatz ist durchdacht und verdient einen genauen Blick.

Der bestehende PHP-Code gilt dabei als Spezifikation, also als verbindliche Beschreibung dessen, was die neue Anwendung tun muss. Ein sogenanntes Parity-Harness, eine Testumgebung für den Verhaltensvergleich, prüft, ob PHP- und Java-Version auf dieselben Eingaben dieselben Ergebnisse liefern. Die Migration läuft laut AWS in acht Phasen, nummeriert von 0 bis 8: Bestandsaufnahme per Scanner, Aufbau des Parity-Harness, ein Regelwerk (RULEBOOK.md) und eine Liste offener Lücken (GAP_INVENTORY.md), ein Härtetest dieses Regelwerks, danach Gerüst, Datenmodell, Ein- und Ausgabe, Geschäftslogik und schließlich Nachweis und Umstellung. Die Arbeit übernimmt Kiro, die KI-Entwicklungsumgebung von AWS, wobei Menschen jede Phase freigeben. Für ganze Anwendungsportfolios verweist AWS alternativ auf seinen Dienst AWS Transform. Laut AWS erkennt der Ansatz Laravel, Symfony, CodeIgniter und reines PHP.

Bemerkenswert ist, welche Gründe AWS für den Wechsel nennt: Typsicherheit, die Auswahl an Bibliotheken und planbare Skalierung. Sicherheit gehört nicht dazu. Ebenso aufschlussreich ist das Beispiel: Von 37 Modellen einer Laravel-Beispielanwendung wurden 4 nach Spring Boot 3.4 auf Java 21 übertragen. Die Autoren nennen selbst als größte Lücke, dass für diesen Ausschnitt kein Parity-Harness existiert. Das ist ein ehrlicher Werkstattbericht, aber kein Beleg, dass sich eine komplette Anwendung auf Knopfdruck übersetzen lässt.

Wann ein Sprachwechsel trotzdem sinnvoll ist

Gegen PHP2Shell hilft ein Sprachwechsel nicht. Bis die neue Anwendung produktiv läuft, muss die alte ohnehin gepatcht werden. Und auch Java-Anwendungen brauchen laufend Updates für Laufzeitumgebung, Frameworks und Bibliotheken, wie unser Beitrag zu sicherem Programmieren in Java zeigt.

Es gibt aber gute Gründe aus anderer Richtung:

  • Teamkompetenz: Das Unternehmen hat ein starkes Java- oder .NET-Team, aber kaum noch PHP-Kenntnisse im Haus.
  • Plattformstrategie: Die übrigen Systeme laufen auf einer gemeinsamen Plattform, und die PHP-Anwendung ist ein Fremdkörper im Betrieb.
  • Architekturumbau: Die Anwendung muss ohnehin grundlegend neu geschnitten werden, etwa weil ein Monolith in Dienste zerlegt oder die Datenhaltung umgestellt wird.

Der Preis ist hoch. Ein Sprachwechsel bindet das Team über lange Zeit, Fachlogik kann unterwegs verloren gehen, und während der Migration müssen zwei Systeme gepflegt werden. Wer diesen Weg prüft, findet in unserer Beratung zur Migration von Legacy-Software Unterstützung bei Bestandsaufnahme und Planung.

Was sich vom AWS-Ansatz übertragen lässt, auch ohne Sprachwechsel

Interessanter als die Zielsprache sind die Methoden, die AWS beschreibt. Sie funktionieren ebenso bei einem großen Versions-Upgrade innerhalb von PHP.

  • Verhalten vergleichen statt hoffen: Lassen Sie alte und neue Version mit denselben Eingaben laufen und vergleichen Sie die Ausgaben. Angenommen, ein Webshop wird von PHP 7.4 auf 8.4 gehoben: Dann können aufgezeichnete Anfragen gegen beide Stände geschickt und die Antworten automatisch abgeglichen werden. Abweichungen bei Preisberechnung oder Rundung fallen so auf, bevor Kunden sie bemerken.
  • Regelwerk statt Handkorrekturen: Der AWS-Grundsatz „fix the loop, not the code“ heißt: Wenn ein automatischer Umbau falsch ist, korrigieren Sie die Regel und lassen neu generieren, statt das Ergebnis von Hand nachzubessern. Mit Rector lässt sich das genauso umsetzen. Der Vorteil: Die Korrektur gilt für alle Stellen und bei jedem weiteren Durchlauf.
  • KI-Agenten für wiederholbare Umbauten: Sprachmodelle eignen sich gut für gleichförmige Änderungen über viele Dateien. Sinnvoll eingesetzt werden sie in klar abgegrenzten Phasen, mit einer Freigabe durch einen Menschen nach jeder Phase und mit Tests als Schiedsrichter.

Welcher Weg zu welcher Ausgangslage passt

Die Entscheidung lässt sich auf wenige Fragen zurückführen: Welche Version läuft heute, wie gut ist der Code getestet, und gibt es Gründe für einen Umbau, die mit Sicherheit nichts zu tun haben?

AusgangslageEmpfohlener Weg
PHP 8.3, 8.4 oder 8.5Patch-Release einspielen, Upgrade auf 8.4 oder 8.5 regulär einplanen
PHP 8.2sofort auf 8.2.35 patchen, Upgrade auf 8.4 oder 8.5 noch vor dem 31.12.2026
PHP 8.1 oder älter, gut getestetgepatchte Distributionspakete als Notlösung, Upgrade zügig umsetzen
PHP 8.1 oder älter, kaum TestsBrücke über Backports oder Extended Support, parallel Tests aufbauen, dann Upgrade
Strategischer Grund für eine andere PlattformAltsystem trotzdem absichern, Sprachwechsel als eigenes Projekt mit Verhaltensvergleich planen

Für die verbleibenden Wochen bis Jahresende ergibt sich daraus eine kurze Liste: alle PHP-Installationen inventarisieren, einschließlich Container und Hosting; die Patch-Releases einspielen; für jede Anwendung auf PHP 8.2 oder älter einen Upgrade-Termin festlegen; und mit composer audit prüfen, welche Abhängigkeiten zusätzlich Lücken mitbringen.

Was das für Ihr Unternehmen bedeutet

PHP2Shell ist ernst, aber kein Grund für Panik und schon gar kein Argument gegen PHP. Unternehmen mit gepflegten Versionen haben die Lücken mit einem Routine-Update erledigt. Unter Druck geraten diejenigen, die Updates jahrelang aufgeschoben haben, und für sie ist die eigentliche Lehre organisatorisch: Regelmäßige kleine Upgrades sind überschaubar, ein Sprung über mehrere Versionen auf einmal ist ein Projekt.

Unsere Einschätzung: Für die große Mehrheit der PHP-Anwendungen ist das Upgrade auf 8.4 oder 8.5 der richtige Weg. Backports und Extended Support sind legitime Brücken, solange am anderen Ende ein Termin steht. Ein Sprachwechsel kann sinnvoll sein, muss sich aber mit Teamstruktur, Plattform oder Architektur begründen lassen. Wer ihn mit Sicherheitslücken begründet, tauscht ein Update-Problem gegen ein anderes.

Wie sich die Sprache selbst entwickelt hat und warum sie trotz aller Unkenrufe weiter einen großen Teil des Webs trägt, beschreibt unser Überblick PHP heute.

Häufige Fragen zu PHP2Shell und PHP-Upgrades

Reicht es, nur den Webserver neu zu starten?

Nein. Erst muss die gepatchte PHP-Version installiert sein, danach sind PHP-FPM und gegebenenfalls Worker-Prozesse neu zu starten. Bei Containern gehört das Neubauen und Ausrollen der Images dazu.

Ist eine WordPress-Seite betroffen, wenn alle Plugins aktuell sind?

Ja, sofern die PHP-Version darunter nicht gepatcht ist. Die Lücken liegen im Interpreter, nicht in WordPress oder seinen Erweiterungen. Aktuelle Plugins schützen davor nicht.

Lässt sich direkt von PHP 7.4 auf 8.5 springen?

Technisch ja, praktisch ist es meist einfacher, in Etappen vorzugehen und jede Stufe zu testen. Entscheidend ist weniger die Zahl der Schritte als die Frage, ob alle Composer-Abhängigkeiten in Versionen verfügbar sind, die die Zielversion unterstützen.

Ist Java sicherer als PHP?

Diese Frage lässt sich nicht pauschal beantworten. Auch Java-Laufzeitumgebungen und -Frameworks haben regelmäßig kritische Lücken. Sicher ist eine Anwendung in beiden Sprachen dann, wenn Laufzeit, Frameworks und Bibliotheken gepflegt werden.

Schlagworte

Mehr aus „Programmiersprachen“

Rusts Lieferkette unter Beschuss: Warum ein Angriff nur der Anfang war

Ein Angriff auf neun Rust-Pakete war nach 110 Minuten gestoppt – aber das eigentliche Problem bleibt. Über zentrale Paketregistries, schmale Standardbibliotheken und Maßnahmen, die Sie heute umsetzen können.

mehr erfahren

Programmiersprachen 2026: Wenn die KI Rust besser schreibt als der Mensch

Wenn KI den Code schreibt, ändert sich die Wahl der Programmiersprache grundlegend. Warum Rust, Go und Co. plötzlich attraktiver werden, und was das für Python bedeutet.

mehr erfahren

Microsoft gegen den Speicherfehler: Warum Rust C und C++ bis 2030 ablösen soll

Microsoft plant, C und C++ bis 2030 durch Rust zu ersetzen. Was steckt hinter dieser Entscheidung, welche technischen und kulturellen Hürden lauern, und was bedeutet das für Entwickler, die heute noch in C++ schreiben?

mehr erfahren

Warum Python, Go und Rust die Zukunft der Softwareentwicklung prägen

Ein umfassender Vergleich der wichtigsten Programmiersprachen: Python, Go, Rust und TypeScript und wie KI-Tools die Wahl der richtigen Sprache beeinflussen.

mehr erfahren

Warum Facebook PHP aufgab und heimlich zurückkehrte

Die spannende Geschichte, wie Facebook von PHP wegkam, eigene Lösungen entwickelte und warum sie heute wieder auf moderne PHP-Versionen setzen.

mehr erfahren

Warum Google auf Go setzt, Mozilla auf Rust vertraut und Banken bei Java bleiben

Eine systematische Analyse, warum unterschiedliche Organisationen verschiedene Programmiersprachen wählen - basierend auf strategischen Überlegungen statt technischen Präferenzen.

mehr erfahren

Weitere Blog-Artikel

Schnelles Denken für Software: Was das KI-Modell Jev von ChatGPT und Co. unterscheidet

Jev ist ein System-1-KI-Modell, das keinen Text schreibt, sondern Fragen mit kalibrierten Wahrscheinlichkeiten beantwortet. Wie das funktioniert und wofür es sich eignet, lesen Sie hier.

mehr erfahren

Node.js ohne Ballast: 12 eingebaute Bordmittel, die npm-Pakete überflüssig machen

Von fetch() über node:test bis zur TypeScript-Unterstützung: Zwölf eingebaute Node.js-Funktionen, die axios, nodemon, dotenv, Jest, chalk und weitere npm-Pakete ersetzen – mit Stabilitätsstatus in Node 24 und den wichtigsten Einschränkungen.

mehr erfahren

KI-Agenten verstehen: MCP, A2A, AG-UI und A2UI einfach erklärt

MCP, A2A, AG-UI und A2UI verständlich erklärt: Wie KI-Agenten Werkzeuge nutzen, miteinander kommunizieren und Benutzeroberflächen erzeugen.

mehr erfahren

Rusts Lieferkette unter Beschuss: Warum ein Angriff nur der Anfang war

Ein Angriff auf neun Rust-Pakete war nach 110 Minuten gestoppt – aber das eigentliche Problem bleibt. Über zentrale Paketregistries, schmale Standardbibliotheken und Maßnahmen, die Sie heute umsetzen können.

mehr erfahren

Webentwicklung ohne SPA: Wie Clash mit VLang, Veb und htmx entsteht

Die Meetup-Plattform Clash zeigt, wie eine vollwertige Web-App mit VLang, Veb, SQLite und htmx entsteht – serverseitig gerendert, sicher und ganz ohne klassisches JavaScript-Framework.

mehr erfahren

React-Performance 2026: Warum weniger Optimierung mehr Tempo bringt

Viele React-Performance-Tipps sind veraltet. Anhand eines anschaulichen Autobahn-Vergleichs zeigt dieser Artikel, was 2026 wirklich zählt: richtige State-Platzierung, nebenläufige Features, Code-Splitting und der React Compiler.

mehr erfahren

Aktuelle Blog-Artikel

Schnelles Denken für Software: Was das KI-Modell Jev von ChatGPT und Co. unterscheidet

Jev ist ein System-1-KI-Modell, das keinen Text schreibt, sondern Fragen mit kalibrierten Wahrscheinlichkeiten beantwortet. Wie das funktioniert und wofür es sich eignet, lesen Sie hier.

mehr erfahren

Node.js ohne Ballast: 12 eingebaute Bordmittel, die npm-Pakete überflüssig machen

Von fetch() über node:test bis zur TypeScript-Unterstützung: Zwölf eingebaute Node.js-Funktionen, die axios, nodemon, dotenv, Jest, chalk und weitere npm-Pakete ersetzen – mit Stabilitätsstatus in Node 24 und den wichtigsten Einschränkungen.

mehr erfahren

KI-Agenten verstehen: MCP, A2A, AG-UI und A2UI einfach erklärt

MCP, A2A, AG-UI und A2UI verständlich erklärt: Wie KI-Agenten Werkzeuge nutzen, miteinander kommunizieren und Benutzeroberflächen erzeugen.

mehr erfahren

Rusts Lieferkette unter Beschuss: Warum ein Angriff nur der Anfang war

Ein Angriff auf neun Rust-Pakete war nach 110 Minuten gestoppt – aber das eigentliche Problem bleibt. Über zentrale Paketregistries, schmale Standardbibliotheken und Maßnahmen, die Sie heute umsetzen können.

mehr erfahren

Webentwicklung ohne SPA: Wie Clash mit VLang, Veb und htmx entsteht

Die Meetup-Plattform Clash zeigt, wie eine vollwertige Web-App mit VLang, Veb, SQLite und htmx entsteht – serverseitig gerendert, sicher und ganz ohne klassisches JavaScript-Framework.

mehr erfahren

React-Performance 2026: Warum weniger Optimierung mehr Tempo bringt

Viele React-Performance-Tipps sind veraltet. Anhand eines anschaulichen Autobahn-Vergleichs zeigt dieser Artikel, was 2026 wirklich zählt: richtige State-Platzierung, nebenläufige Features, Code-Splitting und der React Compiler.

mehr erfahren

React-Komponenten verbinden: Welcher Weg passt wann?

Props, Context, Stores, Server State und mehr: So finden Sie für jede Situation den passenden Weg, damit zwei React-Komponenten miteinander kommunizieren.

mehr erfahren

KI-Agenten in der Schleife: Loops in Claude Code und Codex

Was ein Loop bei KI-Agenten ist, welche Auslöser es gibt und wie Sie geplante Aufgaben in Claude Code und Codex mit Kostenkontrolle einrichten.

mehr erfahren

JavaScript 2026: Bun, Deno und TypeScript 7 läuten eine neue Ära ein

JavaScript erlebt 2026 seinen größten Umbruch seit einem Jahrzehnt: drei konkurrierende Laufzeitumgebungen, ein in Go portierter TypeScript-Compiler, Signals in den Frameworks und Werkzeuge in Rust. Dieser Artikel erklärt anschaulich, was dahintersteckt und was Sie jetzt lernen sollten.

mehr erfahren

npm-Pakete sicher prüfen: So vermeiden Sie böse Überraschungen

Ein praxisnaher Ablauf, mit dem Sie ein npm-Paket in fünf bis zehn Minuten bewerten, von Wartung über Provenance bis hin zu Install-Skripten und Sicherheitslücken.

mehr erfahren

npm install unter der Lupe: Wie Angreifer Ihre Software-Lieferkette kapern

Was passiert wirklich, wenn Sie npm install ausführen? Eine anschauliche Einführung in Supply-Chain-Angriffe, reale Fälle wie qix und Shai-Hulud sowie konkrete Schutzmaßnahmen für Ihren Entwickleralltag.

mehr erfahren

Programmiersprachen 2026: Wenn die KI Rust besser schreibt als der Mensch

Wenn KI den Code schreibt, ändert sich die Wahl der Programmiersprache grundlegend. Warum Rust, Go und Co. plötzlich attraktiver werden, und was das für Python bedeutet.

mehr erfahren

PI Agent vs. Claude Code: Der unterschätzte Open-Source-Konkurrent

PI Agent ist der erste ernstzunehmende Open-Source-Konkurrent zu Claude Code. Wir zeigen anschaulich, was das Tool kann, wie es sich anpassen lässt und wann sich der Wechsel lohnt.

mehr erfahren

Agentic Engine Optimization: So machen Sie Ihre Unternehmenswebsite fit für KI-Agenten

Erfahren Sie, wie Sie mit Agentic Engine Optimization (AEO) Ihre Unternehmenswebsite gezielt für KI-Assistenten wie ChatGPT, Claude oder Perplexity optimieren – inklusive praxisnaher Checkliste für Marketing- und Kommunikationsverantwortliche.

mehr erfahren

Claude Skills für Einsteiger: eigene KI-Workflows aufbauen

Claude Skills bündeln wiederkehrende Anweisungen in einer SKILL.md-Datei. So bauen Sie Skills auf und installieren sie in Claude und Claude Code.

mehr erfahren

Claude Code richtig nutzen: 15 Funktionen, die Profis kennen sollten

Claude Code kann mehr als chatten: So setzen Sie CLAUDE.md, Subagenten, Hooks, Skills, MCP und den Headless-Modus gezielt im Entwickleralltag ein.

mehr erfahren

Claude Code für Einsteiger: Vom Terminal zur fertigen Anwendung

Erfahren Sie, wie Sie mit Claude Code CLI ohne klassische Programmierkenntnisse echte Software bauen. Von Terminal-Grundlagen über Dashboards bis hin zu MCP-Servern, ein praxisnaher Überblick.

mehr erfahren

OpenClaw im Praxistest: vom Chatbot zum digitalen Assistenten

OpenClaw macht ein Sprachmodell zum selbst gehosteten Agenten mit Zugriff auf Rechner und Messenger. Aufbau, Einrichtung, Skills und Sicherheitsregeln.

mehr erfahren

Das Ende der Menüs: Wie KI die digitale Arbeitsumgebung verändert

Seit Jahrzehnten bedienen wir Computer über Fenster, Menüs und Ordner. KI-Agenten verschieben das zu Aufträgen in Alltagssprache. Was sich ändert und was nicht.

mehr erfahren

Microsoft gegen den Speicherfehler: Warum Rust C und C++ bis 2030 ablösen soll

Microsoft plant, C und C++ bis 2030 durch Rust zu ersetzen. Was steckt hinter dieser Entscheidung, welche technischen und kulturellen Hürden lauern, und was bedeutet das für Entwickler, die heute noch in C++ schreiben?

mehr erfahren

TanStack Start: Das moderne React-Framework, das Next.js herausfordert

TanStack Start ist ein modernes, DX-optimiertes Fullstack-Framework für React mit Server-Rendering, Streaming, Server Functions und durchgängiger TypeScript-Typsicherheit. Was steckt dahinter, und warum ist es eine echte Alternative zu Next.js?

mehr erfahren

Die Ralph-Wiggum-Technik: KI-Coding-Agenten, die nicht aufgeben

Die Ralph-Wiggum-Technik lässt einen Coding-Agenten denselben Auftrag wiederholen, bis die Tests bestehen. Wie sie funktioniert und worauf Sie achten sollten.

mehr erfahren

Warum KI Entwickler nicht ersetzt, aber ihre Rolle verändert

KI-Assistenten schreiben heute viel Code. Warum Fachwissen trotzdem wichtiger wird und welche Fähigkeiten Entwickler:innen jetzt gezielt ausbauen sollten.

mehr erfahren

Von Node.js zu Bun: Next.js-Projekte schrittweise umstellen

Wie Sie Bun in Next.js einsetzen: von bun install über bun --bun next dev bis zum Deployment. Was dabei schneller wird, was nicht und was Sie vorher prüfen.

mehr erfahren

Bun erklärt: JavaScript-Laufzeit, Paketmanager und Bundler in einem

Bun ist Laufzeitumgebung, Paketmanager, Bundler und Testrunner in einem. Wie es funktioniert, wie kompatibel es zu Node.js ist und für wen es sich lohnt.

mehr erfahren

KI-Agenten richtig anleiten: Spezifikationen, die funktionieren

Spezifikationen für KI-Coding-Agenten wie Claude Code oder GitHub Copilot: welche Angaben hineingehören, wie Sie Aufgaben aufteilen und Grenzen setzen.

mehr erfahren

Was ist .NET? Einfach erklärt für Entwickler, die endlich durchstarten wollen

Was ist .NET eigentlich und warum nutzen es Millionen Entwickler weltweit? In diesem Artikel erklären wir die Plattform von Microsoft von Grund auf: Geschichte, Architektur, Ökosystem und ein erstes einfaches Beispiel.

mehr erfahren

Künstliche Intelligenz 2026: Vom Chatbot zum digitalen Kollegen

Ein anschaulicher Blick auf die wichtigsten KI-Trends 2026: Von Multi-Agenten-Systemen über physische KI bis hin zu Quanten-Computing.

mehr erfahren

Was 2025 uns über künstliche Intelligenz gelehrt hat – und was 2026 kommt

Entdecken Sie die vier wichtigsten KI-Entwicklungen aus 2025 und was dies für 2026 bedeutet: Von unsichtbaren Agenten über Hardware-Engpässe bis hin zu modularen Spezialistenteams. Ein verständlicher Überblick für Einsteiger.

mehr erfahren

REST und Event-Streams: Wann sich ereignisbasierte Backends lohnen

REST oder Event-Streams? Wie sich Request/Response und Publish/Subscribe unterscheiden, wann Kafka, SSE oder WebSockets passen und wo REST richtig bleibt.

mehr erfahren

Shai-Hulud 2.0: Wie ein digitaler Wurm durch das npm-Ökosystem kriecht und was Sie dagegen tun können

Eine verständliche Erklärung des Shai-Hulud 2.0 npm-Wurms: Wie er funktioniert, warum er so gefährlich ist und wie Sie sich schützen können. Mit praktischen Tipps für Entwickler.

mehr erfahren

HTMX: Moderne Webanwendungen ohne JavaScript-Framework bauen

HTMX lädt Inhalte nach, sendet Formulare und tauscht Seitenteile per HTML-Attribut aus. Die Anleitung zeigt Browser- und Serverseite und den Stand von HTMX 4.

mehr erfahren

Electron vs. Tauri: Der praktische Vergleich für Desktop-Apps mit Web-Technologien

Ein praxisnaher Vergleich zwischen Electron und Tauri für die Entwicklung von Desktop-Anwendungen mit Web-Technologien. Erfahre, welches Framework für dein Projekt besser geeignet ist.

mehr erfahren

Architekturkompetenz im KI-Zeitalter: Der Weg zum Full-Stack-Professional

Eine systematische Analyse der sich wandelnden Rollenbilder in der Software-Architektur und die methodische Entwicklung von Full-Stack-Kompetenzen im Kontext moderner KI-Werkzeuge.

mehr erfahren

Omarchy im Test: So macht Linux endlich wieder Spaß

Entdecken Sie Omarchy - das moderne Linux-System, das Ästhetik und Effizienz vereint. Perfekt für alle, die mehr aus ihrem Computer herausholen möchten.

mehr erfahren

JWT und seine Tücken: Warum Entwickler vor JSON Web Tokens warnen

JWT gilt als moderne Lösung für die Authentifizierung, doch erfahrene Entwickler warnen vor den Fallstricken. Erfahren Sie, warum klassische Sessions oft die bessere Wahl sind und wann JWT wirklich Sinn macht.

mehr erfahren

7 KI-Begriffe, die jeder kennen sollte: Von KI-Agenten bis Superintelligenz

Entdecken Sie die sieben wichtigsten KI-Begriffe von Agentic AI bis ASI – verständlich erklärt mit praktischen Beispielen. Perfekt für alle, die die KI-Revolution verstehen möchten.

mehr erfahren

Machine Learning verstehen: Von den Grundlagen bis zu modernen KI-Systemen

Ein umfassender Einstieg in die Welt des Machine Learning: Verstehen Sie die Unterschiede zwischen KI, ML und Deep Learning und entdecken Sie, wie moderne Algorithmen aus Daten lernen.

mehr erfahren

Die Scrum-Master-Rolle auf dem Prüfstand: Architekturperspektiven auf agile Organisationsstrukturen

Eine systematische Analyse der Scrum-Master-Rolle aus Architektursicht: Wann schafft sie Wert, wann wird sie zum organisatorischen Antipattern?

mehr erfahren

Spec-Driven Development: Wie GitHub Spec Kit Ihre KI-Projekte strukturiert

Entdecken Sie, wie GitHub Spec Kit spec-driven development revolutioniert. Lernen Sie die vier Phasen kennen: Spezifikation, Planung, Aufgabenerstellung und Implementierung für strukturierte KI-Projekte.

mehr erfahren

Was dürfen wir für Sie tun?

So sind wir zu erreichen: