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

Warum überhaupt PHP_SELF?

css_chaos

Neues Mitglied
Hallo,

ich habe vor ein paar Tagen schon eine Frage zu diesem Artikel gestellt:
http://de.wikihow.com/Ein-sicheres-Login-Skript-mit-PHP-und-MySQL-erstellen

In diesem Artikel wird die Servervariable PHP_SELF mit der Funktion esc_url($url) bereinigt, um vor Cross-Site-Scripting-Angriff sicher zu sein. Allerdings verstehe ich nicht ganz, warum man überhaupt diese Servervariable bei Forumularen verwendet. Wenn die Servervaribale z. B. $_SERVER['PHP_SELF'] = "/login.php" ist und sich die gewünschte "Action-Seite" des Forumlars nicht ändern soll, warum kann ich dann nicht einfach einen festen String wie z. B. $actionattribute = "/login.php" verwenden? Schließlich wäre das ja kein Nullstring, den man laut wikihow ja nicht verwenden sollte, wegen den iframe-Clickjacking-Angriffen.

Ich hoffe jemand von euch kennte die Antwort
 
Werbung:
Wenn du den Pfad schon fest in deinen Code schreiben willst, würde ich ihn gleich als Konstante definieren.

Aber mal kritisch betrachtet: Was wenn deine PHP-Applikation mal in einem Unterordner installiert ist/läuft? "/login.php" wäre dann ein fehlerhafter Verweis und dieser ließe sich nur durch ändern des Quellcodes beheben, nichtmal durch Konfigurationsänderung. Was, wenn es mal nicht PHP ist, sondern eine kompilierende Sprache? Dann wäre das schon ein echtes Problem.

Generell möchte man solche Dependencies vermeiden, deshalb überhaupt die Server-Variable, die je nach Request und Umgebung unterschiedliche Inhalte hat.

esc_url() ist laut dem Tutorial eine Variante die im WordPress-Quellcode verwendet wird. Ein guter Grund in WP e.g $_SERVER['PHP_SELF'] zu verwenden ist, dass Wordpress durch u.a. mod_rewrite sehr dynamische und anpassbare URLs verwendet, die nicht fest in den PHP-Code geschrieben können/werden sollten.

Ich würde dem PHP_SELF Index den SCRIPT_NAME Index vorziehen.
 
Vielen Dank für die Hilfe. Ich habe mal ein wenig recherchiert. Das mit dem SCRIPT_NAME ist wirklich eine gute Idee.
 
Werbung:
Zurück
Oben