Hallo,
<form name="sowieso" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
- PHP_SELF muß nicht gesetzt sein
Unter welchen Bedingungen kann das passieren?
- Du vermeidest eine Sicherheitslücke. PHP_SELF enthält *nicht* den Script-Namen, sondern den aufrufenden Namen. Und der ist vom User manipulierbar ("/myscript.php/irgendwasVomUser"). Traue *niemals* Anwenderdaten!
Das stimmt allerdings. So genau hatte ich die Doku gar nicht gelesen. Natürlich habe ich es grade ausprobiert ;-), und tatsächlich wird das Script ausgeführt (Apache/PHP) auch wenn man es als http://example.com/myscript.php/irgendwasVomUser aufruft. Im action steht dann action="/myscript.php/irgendwasVomUser". Nun habe ich mir zwar noch keine Gedanken gemacht, wie man das "irgendwasVomUser" manipulieren müsste, damit es im action-Attribut Schaden anrichten könnte, aber prinzipiell ist es natürlich schon mal schlecht, dass der Nutzer etwas in meinen HTML-Quellcode schreiben kann. Man müsste also auch $_SERVER['PHP_SELF'] gegenchecken, bevor man es mit echo irgendwo in den Quellcode schreibt.
viele Grüße
Axel