Halli Hallo
Ich mich nun schon ein klein wenig länger mit Hackern herum. Problem ist, dass sie scheinbar an mein FTP-Passwort gelangen, per Bot beliebige index.* herunter laden und dort JavaScript- oder (wie jetzt gerade) HTML-Code anhängen. Den ersten Vorfall habe ich im ersten Moment garnicht mitbekommen, weil der per JS verbreitete Virus unter Linux schlicht keine Wirkung zeigte und dann einfach im Cache starb.
Mein Hoster riet dann dazu die Passwörter zu ändern, was ich auch tat, zwei Wochen später hat er selbst nochmal alle Passwörter geändert. Hat nur scheinbar nichts bewirkt
Eben gerade bemerkte ich durch Zufall, dass scheinbar gleiches Problem weiter besteht. Der Zufall war, dass die PHP-Skripte mit Syntaxfehler reagieren, weil ich meine eigenen Skripte ohne abschließendes Tag schreibe. HTML ist dann natürlich fehl am Platz.
Für die PHP-Dateien hab ich mir zumindest mal schnell ein Workaround ausgedacht: Am Ende steht jetzt immer ein __halt_compiler(), der zumindest verhindert, dass nachfolgender Code an den Browser gesendet wird oder PHP wegen Syntaxfehler den Geist aufgibt. Das schützt mich aber nicht davor, dass die Dateigröße selbst von 400 Byte auf locker 800kB (!) ansteigen kann. Ich denke aber auch schon über ein System nach, das im Zweifelsfall wichtige bzw gefährdete Dateien redundant hält und bei Bedarf die Korrumpierte ersetzt. Noch besser natürlich, wenn sich solche Angriffe gleich verhindern lassen, aber weil ja nu meine Paswörter theoretisch unratbar geworden sind, erahne ich den Hoster mittlerweile als Schwachstelle.
So denne, meinen Ärger kund getan
Guts Nächtle, das Müsli
PS: Updates über meine PHP-Bestrebungen sind auch in Planung ![]()
4. August 2008 um 19:38 Uhr
Ein __halt_compiler() bringt in dem Fall aber dann doch auch nicht mehr als ein exit oder ?
4. August 2008 um 22:36 Uhr
Nein, ein exit beendet den kompletten Programmablauf, während __halt_compiler() nur die Verarbeitung des aktuellen Script abbricht.
Datei: bla.php
Datei: blub.
In einem Fall wird “Hallo Welt” ausgegeben, im anderen nicht. Exit dient der Beedndigung und __halt_compiler() dient eigentlich (..
) dazu, dass man Daten in Skripten unterbringen kann. Ursprünglich war dies für Installationsskripte gedacht. Das Beispiel im PHP-Manual [1] bietet ein einfaches Szenario, was sich die Entwickler anscheinend gedacht haben 
[1] http://de3.php.net/halt_compiler
Pingback: Im Visier 2 | KingCrunch's kleine Welt