Register Globals On, wie schreibe ich das um?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
absoluternoob
Mitglied
Beiträge: 41
Registriert: 31.12.2008 17:09

Register Globals On, wie schreibe ich das um?

Beitrag von absoluternoob »

Hallo,

mein Problem ist folgendes: Ich habe auf meinem Server Joomla, phpBB, drupal,...
Jetzt habe ich eine neue Seite dazu bekommen. Diese erfordert aber "Register Globals: On". Ich hätte aber das ganze lieber Off, wegen der Sicherheit.

Da ich noch Ferien habe, habe ich genügend Zeit dieses Script umzuschreiben, da ich gehört habe, dass ich "nur" Variablen ausstauschen muss. Könnt ihr mir sagen, was ich gegen was austauschen müsste?
(Ich habe da mal gehört ich müsste alle "$" gegen "$_GET" austauschen. Stimmt das? Wenn ich richtig verstehe, müsste ich das dann in allen .php Dateien machen, oder?)

floo
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Register Globals On, wie schreibe ich das um?

Beitrag von Boecki91 »

Register Globals sorgt dafür das du schreiben kannst

Code: Alles auswählen

<?php
//Aufruf z.B. mit test.php?input=hallo
echo $input
//Ausgabe: hallo
?>
wenn du RG abstellst kommt nichts raus.

dafür musstest du z.B. $_GET['input'] eingeben.

Die Gefahr bei RG ist das wenn eine Varable vorher nicht verwendet wird und dann z.B. in eine SQL Abfrage eingesetzt wird, kann der Angreifer böse Dinge damit anstellen ;) Somit ist das Umschreiben aller Variabelen nicht sinnvoll, man muss bestimmte umschreiben und auch sonst die Sicherheit prüfen, sonst hat man die RGs zwar aus aber immer noch das gleiche Problem.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
absoluternoob
Mitglied
Beiträge: 41
Registriert: 31.12.2008 17:09

Re: Register Globals On, wie schreibe ich das um?

Beitrag von absoluternoob »

Hallo Boecki!

Wenn ich das richtig verstanden habe, müsste der Code danach, so aussehen, oder?

Code: Alles auswählen

<?php
//Aufruf z.B. mit test.php?input=hallo
echo $_GETinput
//Ausgabe: hallo
?>
@RG: Die eine Seite ist mir eher egal. Wenn dann mache ich das eher um die restlichen Seiten ohne RG auskommen zu lassen. Sie also so zu lassen, wie sie jetzt sind.

floo
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Register Globals On, wie schreibe ich das um?

Beitrag von Frank1604 »

absoluternoob hat geschrieben:

Code: Alles auswählen

echo $_GETinput
nee, nicht ganz!

Code: Alles auswählen

echo $_GET['input']; 
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
absoluternoob
Mitglied
Beiträge: 41
Registriert: 31.12.2008 17:09

Re: Register Globals On, wie schreibe ich das um?

Beitrag von absoluternoob »

Muss der Inhalt unter ' stehen, oder ist das jetzt nur beim Beispiel?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17412
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Register Globals On, wie schreibe ich das um?

Beitrag von Dr.Death »

Hallo,

ähm, hier mal ein kleiner Hinwesi auf ein paar "Grundlagen" -->

http://tut.php-quake.net/de/output.html
http://tut.php-quake.net/de/get.html
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Register Globals On, wie schreibe ich das um?

Beitrag von Boecki91 »

Du kannst das aber nicht überall machen, würde es so einfach sein könnte man auch ein automatisches Programm schreiben :D
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
igorw
Mitglied
Beiträge: 107
Registriert: 02.08.2008 13:04
Wohnort: Winterthur

Re: Register Globals On, wie schreibe ich das um?

Beitrag von igorw »

Es ist möglich, dass $_GET nicht ausreicht. Die meisten formulare verwenden POST. Also müsste man dort zum auswerten $_POST verwenden.

Damit man diesen unterschied nicht machen muss, ist es auch möglich $_REQUEST zu verwenden. Das beinhaltet $_POST, $_GET und $_COOKIE.
Antworten

Zurück zu „Coding & Technik“