O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

1
1
Einleitung
1.1 Über dieses Buch
Als im Herbst 2004 das Konzept für die erste Auflage dieses Buches
erstellt wurde, hatte PHP bereits viele andere Web-Skriptsprachen hin-
ter sich gelassen. Millionen von Websites bauen auf die dynamische
Skriptsprache, und von einfachen Gästebüchern bis hochkomplexen
mehrstufigen Business-Applikationen sind PHP-Anwendungen in allen
Größen, Farben und Formen zu finden.
Seitdem konnte PHP, nicht zuletzt dank der Fülle verfügbarer
Webapplikationen, aber auch dank geringer Einstiegshürden für Ent-
wickler, seinen Vorsprung gegenüber anderen Sprachen deutlich aus-
bauen. Zwar kommen mit dem vielgerühmten »Web 2.0« neue Her-
ausforderungen und Konkurrenten – man denke an »Ruby on Rails« –
aber auch diese Hürde nimmt PHP spielend.
PHP 5 bietet all denen, die zuvor die etwas lückenhafte Implemen-
tierung objektorientierter Programmierung von ernsthaften Gehversu-
chen abgehalten hat, eine umfassendere OOP-Schnittstelle und dazu
geführt, dass noch mehr große Projekte und Firmen den Sprung von
Lösungen mit Java oder .NET zu der freien Skriptsprache schaffen.
Mit dem immensen Wachstum der Nutzer- und Entwicklerge-
meinde wuchsen allerdings auch die Schwierigkeiten. Waren sicher-
heitsrelevante Fehler in PHP-Programmen schon seit jeher ein ernst zu
nehmendes Problem, so kam es im Laufe des Jahres 2004 zu einigen
mehr oder weniger spektakulären Sicherheitslücken. Die Forensoft-
ware phpBB war besonders schlimm betroffen, ist sie doch (aufgrund
ihres reichhaltigen Feature-Umfangs und der relativ einfachen Admi-
nistration) eine der Killer-Applikationen für PHP. Ohne freie und
leicht zu benutzende Produkte wie phpBB wäre die Verbreitung von
PHP sicher nicht so schnell gegangen – allerdings auch nicht die Ver-
1 Einleitung2
breitung des ersten PHP-Wurms Santy
1
, der eine Lücke in der Foren-
software ausnutzt, um Schadcode zu laden und auszuführen. Ironi-
scherweise ist Santy ausgerechnet in Perl geschrieben, der Sprache, an
der sich PHP lange Zeit messen lassen musste.
Andere Sicherheitsprobleme auf Internetseiten mit dem Label
»PHP powered« beschäftigten gleich die Staatsanwaltschaften
2
oder
Mitarbeiter großer Telekommunikationskonzerne
3
. Bei allen Fehlern
handelte es sich um Programmier- oder Designschnitzer, die vermeid-
bar gewesen wären. Obwohl auch in PHP selbst Bugs entdeckt (und
behoben) wurden, die von einem böswilligen Angreifer für seine finste-
ren Zwecke verwendet werden konnten, liegt die große Mehrzahl der
für die erfolgreiche Installation von Rootkits, Backdoors oder anderen
Exploits verantwortlichen Sicherheitslücken in den Anwendungen selbst.
Seit 2004 hat sich die Struktur der Angriffe, aber auch die Struktur
der Angreifer verändert. Wurden PHP-basierte Webapplikationen
noch vor wenigen Jahren hauptsächlich »zum Spaß« angegriffen oder
die sie beherbergenden Server als Ablageplatz für Raubkopien und
Ähnliches missbraucht, stehen nun kommerzielle Interessen im Vor-
dergrund. Professionelle Crackergruppen nutzen automatisierte Tools,
um massenhaft Schwachstellen in PHP-Anwendungen auszunutzen,
sich Zugang zu Webservern zu verschaffen und diese zu kriminellen
Handlungen wie Spam, Phishing, Denial of Service oder gar illegaler
Pornographie zu missbrauchen. Riesige »Botnetze« gehackter Server-
und Clientrechner erwarten die Befehle ihrer mafiös organisierten
Beherrscher. Obgleich es derlei Aktivitäten in engen Grenzen schon vor
der ersten Auflage dieses Werkes gab, ist die Professionalität, Organi-
sationsdichte und programmiertechnische Fähigkeit der Angreifer
stark gewachsen.
In zum Glück stärkerem Maße als Hacker, Cracker und Bauern-
fänger ist PHP den Kinderschuhen entwachsen, darüber besteht weit-
gehend Einigkeit. Anders als bei konventionellen Programmierspra-
chen wird allerdings in der Netzöffentlichkeit die Qualität einer
Sprache nach wie vor an der Qualität der Anwendungen gemessen. So
hat das Website-Management-System PHP-Nuke dem Ruf der Sprache
PHP durch seine zahlreichen Sicherheitslücken nicht unerheblich
geschadet – ähnlich wie das berüchtigte
formmail.pl in Perl das sprich-
wörtliche Negativbeispiel ist. Das scheint ungerecht, schließlich wird
C++ auch nicht für Fehler in Windows verantwortlich gemacht oder
Assembler für Bugs im Interrupt-Handling des Linux-Kernels beschul-
1. http://www.viruslist.com/en/viruses/encyclopedia?virusid=68388
2. http://www.heise.de/newsticker/meldung/50516
3. http://www.heise.de/newsticker/meldung/55057

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required