Mailinglist Archive: opensuse-de (5177 mails)

< Previous Next >
AW: php.ini: register_globals = On
Moin,

Von: Dieter Kroemer [mailto:kroe@xxxxxxxxxxxxxxxx]

Welche Sicherheitsrisiken bekomme ich denn damit?

Ganz einfach: normalerweise wird damit jede in einem Formular übergebene
Variable auch PHP bekannt gemacht. Dabei werden also quasi "automagisch"
neue Variablen angelegt - oder eben genau so "automagisch" mit neuem Inhalt
überschrieben.

Kenne ich als "böser Bub" nun wichtige Variablen innerhalb des Scriptes,
kann ich hingehen, und mir ein eigenes Formular (nicht unbedingt PHP
generiert, nur mit der gleichen ACTION) erstellen, daß gezielt diese nicht
mehr formularinternen sondern rein scriptinternen Variablen ändert.

Gibt's da dann z.B. eine Variable "$uploadpfad", kann ich diese von einem
entsprechend "vergifteten" Formular ebenfalls ändern - mit den dadurch wohl
recht klar ersichtlichen Folgen, insbesondere wenn bei der Prüfung der
Identität eines Benutzers etwas sorglos umgegangen wird (also genau bei
"einfachen" Skripten), bzw. wenn ich auf einem OS arbeite, daß es mit
User-/Gruppen-Berechtigungen nicht gerade genau nimmt...

Mit "registerglobals = off" kann ich zwar über

$scriptvariable = HTTP_GET_VARS['formularvariable'];

(bzw. dasselbe mit HTTP_PUT_VARS) nur etwas "umständlicher" an den Inhalt
der Variablen in meinem Formular kommen, dafür kann ich aber sicher sein,
daß wirklich nur diejenigen Variablen einen Wert zugewiesen bekommen, denen
ich auch aus dem Formular etwas übergeben lassen wollte.

Ein Freibrief für "sichere" Scripte ist das dabei allerdings nicht - es
verhindert lediglich das Überschreiben von scriptinternen Variablen, nicht
aber Probleme wie sie z.B. durch gezielt manipulierte Daten auftreten können
(Session hijacking, absolute Pfad/Dateinamen etc.).

Viele Grüße
Dieter

Bis denn
Gerard

< Previous Next >
Follow Ups