Hallo,
Hallo
<?
$var=$_GET["var"];
?>Nur so kann ich die Variabeln im Code verwenden. Bis anhin ging es ohne!
Das Stichwort heißt register_globals und ist eine Einstellung in der php.ini.
Allerdings soll diese Möglichkeit in zukünftigen PHP-Versionen meines Wisses nach entfallen. Hintergrund sind Sicherheitsprobleme mit register_globals. So wäre mit register_globals einem Angreifer z.B. möglich, Variablen, die du intern in deinem Skript verwendet, einfach mit neuen Werten zu belegen.
Für übergebene Variablen (GET und POST) solltest du ausschließlich die superglobalen Arrays $_GET und $_POST verwenden.
Meine Fragen:
- Ist das mit dem zusätzlichen Code im Header sauberer programmiert?
Nicht wirklich. Man kann es machen, um sich die Arbeit ein wenig zu erleichtern. Ich hoffe aber sehr, dass du alle Variablen, die von außen in dein Skript kommen, noch auf Gültigkeit überprüfst (Stichwort Cross Scripting, Code Injection, SQL Injection). Z.B. solltest du bei Variablen, für die nur numerische Werte erwartet werden, dass auch überprüfen (is_numeric()).
- Kann ich dies umgehen?
Wie oben bereits angedeutet: Ja, im Moment noch. Aber du solltest nicht.
Ich wäre um Eure Meinung sehr dankbar. Ich habe echt keinen Bock all meine Scripts umprogrammieren zu müssen.
Das solltest du aber tun.
Gruß
Stareagle