Selber-programmierte PHP-Anwendungen sicher?

  • Guten Tag,

    1. Kann man sagen, dass eine selber-gescriptete PHP-Anwendung sicher ist, wenn die PHP-Version aktuell ist, oder gibt es da grundsätzlich einige Sachen zu beachten beim Programmieren? D.h. kann es passieren, wenn ich schlampig programmiere, dass dann einer die Kontrolle über den ganzen Webserver übernimmt?

    2. Wer haftet dann? Ich?

  • Zu 1.: Nun, PHP sollte immer so aktuell wie möglich benutzt werden. Natürlich kann es zu Sicherheitsproblemen kommen, je nachdem was du schreibst. Und je nachdem was für einen Fehler du einbaust kann das durchaus passieren. Dazu muss die Seite allerdings auch ein lohnendes Ziel sein.

    Zu 2.: Wenn es grob fahrlässig ist und die Seite kommerziell ist, kann es im Extremfall (der sehr sehr selten ist) zu einer Haftung seitens des Autors kommen. Aber dazu muss man sich schon verdammt dämlich anstellen. Z.B.: Die FTP Root Zugangsdaten im Quelltext drinstehen haben.

  • Bei Eingabefelder muss man vorsichtig sein. Immer wenn Daten vom Clienten kommen, muss dass überprüft werden. Es gibt aber tausende Seiten in denen gezeigt wird wie man sicher mit PHP programmiert und was man beachten muss.
    Das könnte aber komplizierter werden wenn du z. B. Seiten auf deinem Server hostest und Andere auf ihrem webspace auf deinem Server Scripte hochladen und ausführen können. Ich hatte mich mit diesem Thema noch nie beschäftigt aber da geht es weniger um die Scripte als um die PHP-Version. Wenn man einmal die Berechtigungen gesetzt hat, darf das eine Script nicht mit der falschen Berechtigung laufen, oder so.

  • Zitat von Lord-Ali

    Bei Eingabefelder muss man vorsichtig sein. Immer wenn Daten vom Clienten kommen, muss dass überprüft werden. Es gibt aber tausende Seiten in denen gezeigt wird wie man sicher mit PHP programmiert und was man beachten muss.


    Ja, das ist klar, darum geht es nicht.

    Meine (!) Frage war, ob das schon als "grob fahrlässig" zählen könnte, wenn man bei den Besuchereingaben sich nicht drum kümmert. ;)

  • Zitat von allblue


    Könnte das auch schon sein, wenn jemand bei der Verarbeitung von Eingabefeldern möglichen Texteingabe-Unfug (Code u.ä.) grundsätzlich nicht bereinigt?


    Das kommt auf den Einzelfall an und ist gesondert zu prüfen. Pauschal lässt sich das nicht sagen.

    Als Beispiel:
    1. Man entwickelt eine Homepage für Hinz-und-Kunz
    2. Man entwickelt eine sicherheitskritische Webanwendung für eine Bank

    Da Haftungsfragen letztlich vor Gericht enden, muss dann ein Richter darüber urteilen. Tendenziell würde ich nicht von grober Fahrlässigkeit ausgehen, ich kann mir aber Fälle vorstellen (vgl. 2.) bei denen eine solche Beurteilung aber angemessen wäre.

  • Je höher der Wirtschaftliche Wert/Besitz der Verantwortlichen einer Anwendung, je wahrscheinlicher die Chance dass ein Fehler als Fahrlässig verurteilt wird. Fehler passieren, man sollte nur es so machen dass der Schaden nie zu groß wird. Besser vorher sich etwas damit beschäftigen als zu früh damit anfangen.


    Und nicht vergessen und wieder auf das Thema mit Formularfelder zu kommen:
    “All incoming data is evil”

  • Wenn man die Übergabe (also JEDE, nicht nur Formulare!) prüft und validiert, ist man auf der recht sicheren Seite. Wenn es ein Rechtebezogenes Kontentsystem gibt, sollte man alles mal durchgetestet haben. Aber es gibt natürlich immer wieder auch Fehler in den PHP-Versionen, die z.B. in denen für die Validierung genutze Funktionen vorkommen könnten, zu missbrauchen. Wenn man sich diesbezüglich ebenfalls informiert hat und die Risiken genannt hat, dann ist das auch abgesichert. Wegen Fehlern in zukünftigen PHP-Versionen kann man dich natürlich nicht verantwortlich machen. Bei weitläufig bekannten Problemen hingegen sollte man vorsichtig sein.

    Es kommt natürlich auch immer auf den möglichen Schaden an, der entstehen könnte. Wenn ein erhöhtes Risiko besteht, muss man natürlich auch darauf reagieren.

    Wenn man grundlegende Sicherheitsaspekte berücksichtig, ist man in der Regel auf der sicheren Seite. Fehler kann jede Software haben, absolute Sicherheit kannst du gar nicht bieten. Das kann keiner. Und damit kann man dich auch kaum dafür zur Verantwortung ziehen. Normalerweise testet man ausgiebig, gibt das auch an, weißt auf evtl. Sicherheitslücken/Bedenken hin, gibt aber keine Garantie, oder lässt sich diese entsprechend bezahlen.

  • Zitat von allblue


    Könnte das auch schon sein, wenn jemand bei der Verarbeitung von Eingabefeldern möglichen Texteingabe-Unfug (Code u.ä.) grundsätzlich nicht bereinigt?

    Eindeutig.

    Nur als Beispiel: http://de.wikipedia.org/wiki/Peter_Hut…icher_Kompetenz (Hmm, dummes Forum, wieso klappt der Link nicht) bzw. http://www.heise.de/newsticker/meldung/55091

    Hier war nur ein einziger Parameter nicht geprüft worden. Zu Rechtlichen Konsequenzen ist es für den Seitenbetreiber zwar nicht gekommen, aber viel fehlte da nicht. Natürlich ist das abhängig, was du auf dem Server liegen hast. Wenn da nichts spannendes drauf ist gibt es auch kein Problem, wenn jemand diese Daten ausließt/"hackt", folglich gibt es auch keine Anzeige, weil du irgendwas fahrlässig veröffentlicht hast.

  • Eindeutig? Die Ermittlungen der Staatsanwaltschaft richteten sich gegen die Leute, die die Daten abgerufen hatten. Es wurde doch nicht gegen die Verantwortlichen von MyChannel ermittelt, die für die Schwachstelle selbst verantwortlich waren. In dieser Hinsicht ist das Beispiel unpassend.

  • Zitat von boardraider

    In dieser Hinsicht ist das Beispiel unpassend.

    Da hast du recht. Besseres Beispiel ist mir aber grade nicht eingefallen. Das Beispiel demonstriert aber trotzdem zu was für Konsequenzen nicht geprüfte Parameterüberprüfungen führen können. Und wenn man fahrlässig private Daten veröffentlicht, _könnte_ es sicher sein, dass da irgenein wild gewordener Rechtsanwalt den Seitenbetreiber zur Verantwortung zieht. Und das war die Frage.

  • Im normalfall stimmst du in den AGB zu, dass du den Serverbetrieb nicht behinderst. Wer aber dann Schuld ist, und ob es nicht vielleicht an einem zu schwachen Server liegt wäre im Einzelfall zu klären.

  • JonHa
    In Bezug auf die Auswirkungen einer solchen laschen oder überhaupt nicht erfolgten Prüfung hast du natürlich vollkommen recht. So gesehen ist das Beispiel doch wieder passend, lässt man den Aspekt der Anklage weg und hebt die Folgen hervor.

    allblue
    In Bezug auf den Hoster wären Regressforderungen wohl möglich. Der Webserver darf eigentlich nur sehr eingeschränkte Rechte im System haben, so dass ein "ins Nirwana schicken" des Servers nicht ohne weiteres möglich sein dürfte. Wer natürlich Zugangsdaten im Klartext irgendwo prominent ablegt, der braucht sich dann nicht wundern. Aus meiner Erfahrung heraus kommt das aber doch immer wieder vor.