Moin!
vor einigen Jahren habe ich mal einen VHS PHP-Wochenendkurs belegt und u.a.. dieses kleine Programm erstellt.
ud05.php :
<html>
<body>
<?php
echo "Sie möchten also nach $rziel in ";
echo " ein $htyp Sterne Hotel<p>";// der Rest des Skripts …
?>
So etwas lernt man bei der Volkshochschule? Ich kann es kaum glauben! Über die Sache mit [register_globals](http://de3.php.net/manual/de/security.globals.php) wollen wir mal hinweg sehen, aber in der Ausgabe klafft eine dicke [Cross-Site-Scripting](http://de.wikipedia.org/wiki/XSS)-Lücke. Stell dir mal vor, `$rziel = '<script type="text/javascript">doEvilJavaScriptHacking();</script>';`{:.language-php}, dann ergäbe die Ausgabe – richtig – HTML-Code mit eingebettetem JavaScript, z.B. um Sessions zu klauen, Exploits im Browser auszuführen, …
Ach nein, wir wollen doch nicht über register\_globals hinwegsehen: Du hast ja schon den Tipp bekommen, über `$_POST`{:.language-php} an die Variablen heranzukommen. Nun, wenn register\_globals eingeschaltet ist, d.h. das Formularfeld "rziel" korrespondiert direkt mit der Variablen `$rziel`{:.language-php}, bedeutet das, dass PHP \_nicht\_ danach schaut, ob rziel von GET, POST oder per Cookie übertragen wurde. Das komfortable an deinem Skript für einen Angreifer wäre dann, dass er nur den URI manipulieren bräuchte:
http://example.com/karl/hinzer/vhs/ud05.php?rziel=%3Cscript%20type=%22text/javascript%22%3EdoEvilJavaScriptHacking();%3C/script%3E
Damit enthält `$rziel`{:.language-php} den gleichen Schadcode wie oben.
> Heute wollte ich mich mal wieder mit PHP beschäftigen, aber nun funktioniert das Programm nicht mehr. Ich habe PHP5.2.0 installiert, im Kurs hatten wir noch PHP4 - ist das evtl. die Ursache für mein Problem?
Nein, wie schon gesagt, in deinem Kurs war register\_globals (php.ini-Einstellung) noch auf "on", aus Sicherheitsgründen sollte es aber deaktiviert, "off", sein.
Mein Tipp wenn du wieder mit PHP anfängst: Lies dir mal das Kapitel [Sicherheit](http://www.php.net/manual/de/security.php) in der PHP-Doku durch.
Viele Grüße,
Robert