Hilfe:PHP

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen

PHP und nicht professionell erstellte Programme im Internet

PHP ist eine beliebte Programmiersprache, die für die Bereitstellung dynamischer ("berechneter") Webseiten gerne eingesetzt wird. (Auch das GenWiki, dessen Softwarebasis MediaWiki darstellt, ist übrigens zum größten Teil in PHP programmiert.)

PHP wurde in seinem Entwurf auf Einfachheit und Flexibilität hin optimiert, weniger auf eingebaute Sicherheit.

Die Kombination dieser Eigenschaften führt dazu, dass insbesondere Einsteiger sich gerne dieser Programmiersprache bedienen und dabei, nicht selten unbewusst, angreifbare Webseiten erzeugen.

Ungeachtet der erst wachsenden Kenntnisse und der ebenfalls erst wachsenden Bereitschaft, auch Sicherheitsbelangen bei der Programmierung den gebührenden Raum zu gewähren, stellen die Programmautoren die meisten Seiten gewollt direkt erreichbar allen wohlmeinenden, aber auch weniger wohlmeinenden Internet-Nutzern zur Verfügung. Manche, vermeintlich geschützte, Seiten sind dann dabei fast genauso leicht erreichbar, weil der vorgesehene programmierte Schutz nicht oder nicht mehr wirksam ist, da z.B. Techniken oder Einstellungen verwendet werden, deren Schutzzweck inzwischen ausgehebelt werden kann.

Aber auch die Programmiersprache selbst und deren praktische Realisierung als Servermodul entwickeln sich weiter. Strukturelle Fehler und Lücken auf dieser Seite werden nicht (nur) durch Flickschusterei (Flicken = Patches) bereinigt, Versionswechsel beheben bekannt gewordene größere Probleme. Neue Versionen bringen in der Regel aber auch zunächst die Abkündigung von bisher unterstützten Techniken, Funktionen, Einstellungen (Optionen) mit, die dann in späteren Versionen tatsächlich abgeschafft oder komplett umgestellt werden. Programme, die daraufhin nicht angepasst werden, werden ab da in der Regel bestenfalls komplett versagen oder im schlechten Fall (nach außen nicht sichtbar) falsche Ergebnisse erzeugen.

Wieso soviel Aufhebens wegen der Sicherheit?

Es gibt die Argumentation, dass vor allem private Seiten kein Interesse bei Angreifern finden würden oder, wenn dann doch etwas geschieht, der Schaden überschaubar sei.

Dazu einige Gegenargumente:

  1. Viele Angriffe bzw. deren Vorbereitungen werden automatisiert vorgenommen. Es werden zunächst potentielle Opfer anhand äußerer Merkmale gesucht, die dann im Einzelfall gezielt angegangen werden. Bereits bei der Analyse, speziell einer Tiefenanalyse, werden bekannte und vorgefundene Programm- und Programmierfehler ausgenutzt. Schon an dieser Stelle kann der erfolgreiche Analysevorgang zu Fehlfunktionen der gesamten Serverumgebung führen (dramatischer Leistungsabfall, Ressourcenfraß).
  2. Es ist zu bedenken, dass nicht nur unmittelbare kommerzielle Vewertungsziele bei den Störenfrieden vorliegen. Teilweise ("Skriptkiddies"[1]) findet man infantile Zerstörungs- und Machtfreude vor, die häufig nicht leicht nachvollzogen werden kann. Nichts desto weniger führen diese durchaus zu folgenschweren Störungen und Schäden.
  3. Nicht jeder Server-Nutzer hat "seine", physikalisch streng abgeschirmte Umgebung. Dringt also durch ein mangelhaft geschütztes bzw. schlecht programmiertes Programm ein Störer in die Programmumgebung ein (das ist keine Paranoia sondern Alltag im Internet), ist der Weg zu anderen Programm- und Datenbereichen grundsätzlich sehr erleichtert. Man stelle sich ein Haus (Server) mit vielen Wohnungen (Programmumgebungen) vor, deren Zugang ins Treppenhaus über die Haustür (Serverzugang) relativ gut gesichert sein kann, allerdings durch offene Fenster in den einzelnen Wohnungen Einladungen zum Besuch ausgesprochen werden. Jetzt hängt es nur noch von der guten Gestaltung der anderen Wohnungstüren (u.a.: Rechte auf Programmdateien und deren Ausführung, Verschlüssellungen usw.) ab, ob und wie der Zugang und die Verwendbarkeit dort verwalteter Daten verhindert werden kann.
  4. Ein Nutzer kennt bestenfalls nur die bei ihm vorliegenden schützenswerten Daten. Was die anderen Nutzer auf dem selben Server behüten, weiß er nicht.
  5. Als Familienforscher setzen wir an vielen Stellen auf Personendaten, teilweise sehr sensible, datenschutzrechtlich exakt zu behandelnde Daten.
  6. Datensicherung (Kopie des Zustandes von Programmquellen und Daten) ist keine vollständige Antwort auf Verlustbedrohungen, da neben dem simplen Löschen auch die stückweise Verfälschung um sich greift, die kaum bzw. nur mit sehr großem Aufwand von gewollter Bearbeitung durch den legitimen Autor ("semantisch") unterschieden werden kann!

Verantwortung von Programmerstellern für seine "Kinder"

Hier sollen nochmals die gerne verdrängten Verantwortlichkeiten dargestellt werden, die ein Programm- und Webseitenautor mit dem Gang in die Öffentlichkeit und mit der Nutzung gemeinsamer Ressourcen übernimmt.

Verantwortung in Bezug auf die Daten der eigenen Seite

moralisch

Habe ich als Autor Dritten Zusagen gemacht, dass von denen gelieferte Daten oder über sie vorliegende Daten nicht oder nur eingeschränkt der Öffentlichkeit erreichbar sein sollen, habe ich mich entsprechend zu verhalten. Bei einem Bruch dieser Zusage ist es eher zweitrangig, ob dies aufgrund fehlender professioneller Kenntnisse, eigener zeitlichen oder fachlicher Ressourcen oder aus simpler Ignoranz geschah. Mißfälle werden sich zusätzlich auch auf das Verhalten der Lieferanten späteren Anfragern gegenüber auswirken.

datenschutzrechtlich

Liegt keine explizite Einwilligung der betroffenen lebenden Personen vor, sind die in Deutschland dem Datenschutz unterliegenden Informationen geeignet zu schützen.

urheberrechtlich

Analog zum Datenschutz sind Informationen entsprechend dem ihnen (noch) zustehenden Schutzniveau vor nicht genehmigter Verwendung zu schützen.

Verantwortung gegenüber dem Serverbetreiber

Auch wenn der Betreiber des Servers (hier konkret: die Server-Administratoren von CompGen) alles ihnen zur Verfügung stehende unternimmt, die Rahmenbedingungen für den Betrieb der Seiten grundsätzlich sicher zu gestalten, ist letztlich der "#Wieso soviel Aufhebens wegen der Sicherheit?" für die verbleibenden "offenen Fenster" verantwortlich. So, wie ich nicht durch andere verursacht angegriffen werden möchte, sollte ich beim Schutz der Umgebung meiner Mitbewohner auf dem Server mitwirken.

Das bezieht sich einerseits auf die konkrete Gestaltung meiner Programme als auch auf das Verständnis für die notwendigen, nicht immer angnehmen Maßnahmen, die auf dem Server zum allgemeinen Schutz vorgenommen und weiterentwickelt werden müssen.

Nicht zuletzt werden auch gröbere Sicherheitslücken in Programmen sogar zur Eroberung des gesamten Servers (root Status) genutzt/mißbraucht.

Derartige Lücken werden teilweise erst mit der Zeit und mit den diversen Versionen bekannt, müssen daher gegebenefalls auch nachträglich geschlossen werden. Dabei können unangenehme Nebenwirkungen nicht ausbleiben, die mitunter Dinge erschweren oder unmöglich machen, die eben noch einfach realisierbar waren.

Verantwortung gegenüber den anderen Nutzern desselben Servers

Die Inanspruchnahme von Serverressourcen (Hauptspeicher, Prozessorleistung, Laufzeiten) sollte immer kooperativ gedacht werden. Wenn "meine" Programme quasi ohne Respekt vor den parallel laufenden Prozessen ein Maximum an technisch erreichbaren Umfängen anfordern und damit alle anderen Nutzer verdrängen, sind globale Schutzmaßnahmen und Beschränkungen die unmittelbare Folge.

Was kann ich tun?

Nachhaltigkeit

Ein einmal geschriebenes (oder kopiertes) Programm ist mit seinem erstmaligen Einsatz nicht fertig betreut. Der Autor (oder besser: der lokale Beteiber) übernimmt auch für die folgende Zeit der Bereitstellung die Verantwortung wie ein Elternteil für seine Kinder.

Befassen mit den eingesetzten Werkzeugen

Aus den erreichbaren und verständlichen Quellen sind Änderungen an der Programmiersprache (hier PHP), z.B.

  • nicht mehr einzusetzende Funktionen,
  • fatale Einstellungen usw.

nachzulesen und die Programme daraufhin zu untersuchen.

Sollte ich als Autor dazu nicht in der Lage sein, werde ich mir Hilfe heranholen müssen oder überlegen, ob ich meiner Verantwortung in diesem Bereich gerecht werden kann.

Informieren

Bücher
Webseiten
Mailinglisten
Das ist die Plattform derjenigen, die bei genealogy.net eine Subdomain nutzen und dort auch PHP-Scripte laufen lassen können.
Hilfeseiten im GenWiki

Auseinandersetzung mit den Gegebenheiten auf dem genutzten Server

Festlegungen und Einschränkungen

Versionswechsel bei der Server-Software

Alternativen

Webseiten bereitzustellen ist einerseits (technisch) relativ geworden. Allerdings steigen die Ansprüche an die technischen Hintergründe immer weiter an.

Aus diesem Konflikt kann man mitunter elegant entkommen, wenn man sich z.B. nicht auf jede der aktuell angesagten Webtechniken werfen und sich mehr auf die inhaltliche Gestaltung und Entwicklung des Webangebotes konzentrieren möchte. In diesem Fall wäre die Nutzung eines einfachen Inhaltsverwaltungssystem (Content Management Systems, CMS[2]) zu überlegen. Beispielsweise wird auf genealogy.net die Nutzung des einfachen CMSimple[3] empfohlen.




  1. Artikel Skriptkiddie. In: Wikipedia, Die freie Enzyklopädie.
  2. Artikel CMS. In: Wikipedia, Die freie Enzyklopädie.
  3. Artikel CMSimple. In: Wikipedia, Die freie Enzyklopädie.