PHP: register_globals

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.
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

PHP: register_globals

Beitrag von hotkey »

Hallo Leute.

Ich habe folgendes Problem. Ich habe auf meinem eigenen WebServer eine WebSite programmiert. Seid PHP 4.x.x ist register_globals auf off gesetzt und das ist auch gut so. Leider kann ich die WebSite auf meinem eigenen WebServer nicht hosten, weil das gegen die Regeln des DFN verstößt. Auf dem neuen WebServer ist register_globals auf on gesetzt und ich habe keinen Einfluß darauf, wo die WebSite gehostet wird. Da ich bei der WebSite mit Sessions arbeite ist der Funktionsumfang ein wenig eingeschrenkt. Denn der WebServer macht zwischen den Variablen $_POST['login_group'] und $_SESSION['login_group'] keinen Unterschied mehr, da sie den gleichen Bezeichner enthalten. Jetzt wäre es natürlich ein höllischer Aufwand die ganzen Variablen umzubenennen, zu mal das bei mehreren tausend Zeilen Code auch relativ Fehleranfällig ist. Mir war so als gäbe es die Möglichkeit über ein PHP Skript den Wert für register_globals zu ändern, aber ich komme nicht mehr darauf. Kennt jemand die Lösung?

Danke.
besucher

Beitrag von besucher »

leider kann man register_globals nicht umstellen, denn diese einstellung ist bei z.b. apache in der php.ini im windows verzeichnis des servers gespeichert, und ich bin mir sicher, dass der betreiber des servers, es verhindern wird, dass man diese datei umschreiben kann.
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

Beitrag von hotkey »

Ich würde mal behaupten das so ein Server in der Regel unter Linux betrieben wird, aber das ist ja nebensächlich. Ich bin mir nicht sicher wie ein Provider das realisiert. Der wird ja nicht jedem Kunden einen Server hinstellen, sondern das ganze viel eher über Virtuelle Hosts realisieren und da könnte ich mir schon vorstellen das der Kunde das über eine Skripteinstellung lösen kann. Ich war der Meinung ich hätte da mal etwas in einem Buch gelesen, aber das waren so viele Wälzer das ich nicht mal mehr weiß welches es war. Da ich einen eigenen WebServer habe, war das für mich auch völlig uninteressant :(
besucher

Beitrag von besucher »

der provider wird das sicher zu verhindern wissen, denn es soll ein grosses sicherheitsrisiko sein, wenn register_lobals on ist. deshalb ist es ja auch nun standartmässig auf off. also finger weg :evil:
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

Beitrag von hotkey »

Du hast das falsch verstanden. Die Einstellung ist beim Provider auf on und ich will es auf off setzen. Angeblich gibt es die Variante das ganze über eine .htaccess Datei auf off zu setzen. Das werde ich mir mal anschauen, wenn ich die Zeit dazu habe.
besucher

Beitrag von besucher »

der provider hat es absichtlich auf off gesetzt, du kannst daran nichts verändern. das ist nun standart und wird es auch bleiben, wenn dir das nicht gefällt, dann hasst du leider pech gehabt, ausserdem sollte man sowieso auf register_globals on sein.

ausserdem will ich dieses script erstmal sehen. schliesslich musst du da auf die php.ini (bei windows) zugreifen, und das wird dir der provider sicher nicht erlauben.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

hotkey hat geschrieben:Angeblich gibt es die Variante das ganze über eine .htaccess Datei auf off zu setzen.
Nicht nur angeblich: http://de.php.net/manual/de/configurati ... ges.apache
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Re: PHP: register_globals

Beitrag von PhilippK »

hotkey hat geschrieben:Denn der WebServer macht zwischen den Variablen $_POST['login_group'] und $_SESSION['login_group'] keinen Unterschied mehr
Wer behauptet dies? Die beiden Variablen sind auch bei register_globals = on unterschiedlich. Lediglich die Variable $login_group wird bei aktivierter Option zusätzlich initialisiert.
Das, was du suchst, findest du übrigens hier: http://de.php.net/manual/en/configurati ... er-globals

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

Beitrag von hotkey »

Danke, das werde ich mir mal genauer anschauen.

Um das Problem mal beim Namen zu nenne. Wenn ich als Admin angemeldet bin und lege einen neuen User an, dann werden die Daten der Session überschrieben, obwohl die Aktion im Skript nicht vorgesehen hat. Man ist dann also der User den man gerade angelegt hat und natürlich mit eingeschrenkten Rechten. Bei register_globals off ist das nicht der Fall. Deshalb habe ich behauptet das zwischen den Variablen Typen nicht unterschieden wird.
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Naja du kannst ja das so programmieren, das das Script auf beide Einstellung einwandfrei Funktioniert. mit

Code: Alles auswählen

ini_get("register_globals");
*also das was Philipp angelinkt hatte*

kannst du überprüfen ob es auf On oder auf Off steht und dementsprechend handeln.


PS: ich suche mir immer nur Hoster aus, die register globals auf OFF haben, da dies besser ist ;)

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Antworten

Zurück zu „Coding & Technik“