KingCrunchs kleine Welt

Gedanken über PHP und was mich sonst bewegt…

Im Visier

| 3 Kommentare

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 ;)

3 Kommentare

  1. Ein __halt_compiler() bringt in dem Fall aber dann doch auch nicht mehr als ein exit oder ?

  2. Nein, ein exit beendet den kompletten Programmablauf, während __halt_compiler() nur die Verarbeitung des aktuellen Script abbricht.

    Datei: bla.php

    require_once 'blub.php';
    echo 'Hallo Welt';
    

    Datei: blub.

    // Hier entweder __halt_compiler oder exit
    

    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

  3. Pingback: Im Visier 2 | KingCrunch's kleine Welt

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*


Bad Behavior has blocked 104 access attempts in the last 7 days.

Page optimized by WP Minify WordPress Plugin