• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wenn 2 von 3 Variablen leer sind, dann...

Ja, das $_SERVER war aus Sicht von "register globals" okay, aber aus Sicht von PHP_SELF nicht (für mehr Informationen dazu sucht nach "php_self xss").

Mir ging es bei register globals um die Verwendung von $grundwert, $prozentsatz, $prozentwert zum Zugriff auf $_POST-Werte. Der verlinkte Handbucheintrag erklärt das wunderbar (und er ist auch auf Deutsch verfügbar).
 
Ich habe ein wenig gegooglet und so verstanden:

Statt <?php $_SERVER['$PHP_SELF']; ?> zu verwenden, lieber <?php $_SERVER['SCRIPT/DATEI_NAME']; ?>
 
oder den pfad zum script wäre noch besser.
auch möglich, eine prüfung wie
PHP:
if(!file_exists($_SERVER['PHP_SELF'])) die ("keine xss attaken erlaubt");
kann ja auch wunder helfen.

@mermaus:
war keine kritik an dir, ich habe dich schon verstanden, wollte nur klarstellen, dass $_SERVER nicht wegen register_global entfernt werden sollte. mein __FILE__ beispiel zeigt, dass man auch $blabla mit dem pfad des scripts belegen kann und dann den action-tag damit befüllt.
PHP muss immer wieder gegen den ruf ankämpfen eine fehlerhafte script-sprache zu sein, dabei fabrizieren die coder den mist, nicht die sprache. man muss eben fehlerquellen nur abfangen.
 
Wenn das aktive Script (genauer: die aktive URL) wieder aufgerufen werden soll, kann das action-Attribut wie gesagt auch einfach leer bleiben. Das ist definitiv legitim.

@sysop: Danke, ich hatte das nicht als Kritik aufgefasst. Mir ging es auch um die Exaktheit. Volle Zustimmung zu den Aussagen über PHP und unsichere Skripte.
 
Zurück
Oben