global register on? schlecht oder sehr schlecht

Alexander W

Aktives Mitglied
Hallo ich hab mal ne frage zu der einstellung in der php.ini "register_globals off oder on"
Da ich seit kurzem einen eigenen Server habe und schon viele Seiten dort von örtlichen firmen drauf lagere, hab ich immer versucht den Server so sicher wies geht zu haben. Nun habe ich aber von zwei Kunden Scripte bekommen die in Ihre Seiten eingebaut werden möchten und diese verlangen das ich register_globals auf on stelle.

Ist es wirklich so gefährlich es an zuhaben? Oder gibt es ausweichmöglichkeiten dafür?
Oder kann man diese scripte sogar passend umschreiben das es nicht mehr nötig ist register_globals umzustellen.


Das eine ist ein toplistenscript wo man kostenlos toplisten bekommen kann

Das zweite sind ein Counterservice inklusive Webkatalog.


Kann mir da einer helfen oder mir gute Ratschläge geben?
 
Nach langem durchforsten von google bin ich auf diese Seite gestoßen register_globals und würde gerne eure Meinung wissen ob die restlichen Seiten und der Server jetzt trotzdem sicher sind oder nicht da ich mit php selber nicht mehr viel zutun habe. Ich habe es getestet und ich muß sagen so einfach löste sich noch nie etwas bei meinen bisherigen Problemen

Würde trotzdem eure Meinung zu dem Thema register_globals gerne hören.
 
Deine Frage kann ich nicht beantworten...

...Aber mach dich über die Lösung der PHP config via CGI schlau, das könnte dein Problem auch lösen.
 
register_globals ist nur dann unsicher, wenn der Programmierer unsicheren Code schreibt. Mehr kann man dazu m.E. kaum sagen.
 
CODE
<?php
extract($_REQUEST);
?>

Dieser Code macht die Register-Globals Abstellung in der php.ini fast vollständig rückgängig, weil ja alles was über die GET-Schnittstelle reinkommt automatisch in die aktuelle Symboltabelle übernommen wird, also als Variable verfügbar ist. Wenn das Skript Sicherheitsprobleme hat, sind die wieder da. Hat es keine, wäre das ein funktionierender Workaround.
(http://www.php.net/manual/de/function.extract.php)



QUOTE Aber mach dich über die Lösung der PHP config via CGI schlau,

Ich schätze du meinst, php als cgi laufen zu lassen.
Das hat damit so weit ich weiß nur teilweise etwas zu tun.
Hauptproblem bei "Register Globals" ist die Möglichkeit, Skripten Variablen unterzujubeln.
Bsp.: skript.php?sql=delete * from tabelle

Der Ansatz, php als CGI laufen zu lassen (Alternative: suphp), ist die Skripte unter den Rechten des Nutzers laufen zu lassen und nicht unter denen des Systembenutzers wie beim Modul.
Das bringt mehr Sicherheit auf Mehrbenutzersystemen, vor allem wenn der Safe Mode von PHP nicht angeschaltet sein kann.

Der Zusammenhang besteht, dass man über Variablen unter bestimmten Umständen auch direkt Befehle einschleusen kann. Wenn die dann mit den Rechten des Systembenutzers laufen, hat der potentielle Angreifer sehr viele Freiheiten.
 
QUOTE (Ansgar Berhorn @ Do 27.1.2005, 15:40)
CODE
<?php
extract($_REQUEST);
?>

Dieser Code macht die Register-Globals Abstellung in der php.ini fast vollständig rückgängig, weil ja alles was über die GET-Schnittstelle reinkommt automatisch in die aktuelle Symboltabelle übernommen wird, also als Variable verfügbar ist. Wenn das Skript Sicherheitsprobleme hat, sind die wieder da.

Heißt es jetzt er macht die Einstellung für den ganzen Server rückgängig oder nur für dieses Script? Wenn es nur das Script wäre würde es mir nicht viel ausmachen.

Wie kann ich denn am besten erkennen oder testen ob ein Script mit oder ohne Sicherheitsprobs. geschrieben wurde?
 
QUOTE Heißt es jetzt er macht die Einstellung für den ganzen Server rückgängig oder nur für dieses Script? Wenn es nur das Script wäre würde es mir nicht viel ausmachen.


Natürlich nur in dem Skript.


QUOTE Wie kann ich denn am besten erkennen oder testen ob ein Script mit oder ohne Sicherheitsprobs. geschrieben wurde?
  • php verstehen
  • Register-Globals Sicherheitsproblematik verstehen
  • Sicherheitsaudit der Skripte machen (also Funktion des Codes nachvollziehen und auf Sicherheitslücken hin prüfen)
 
Zurück
Oben