dedlfix: Globals off / REMATE_ADDR

Beitrag lesen

echo $begrüßung;

Ja, und komme bloß nicht auf die Idee, register_globals einzuschalten - es ist gut, dass das aus ist! (hat eine gewisse Sicherheitsrelevanz)

Soll ich auch noch meinen Senf zu dieser Diskussion dazugeben?

Einem "guten" Script ist es völlig gleich, ob register_globals ein- oder ausgeschaltet ist. Ein "gutes" Script initialisiert Variablen vor dem ersten lesenden Gebrauch mit einem definierten Wert, und verlässt sich nicht darauf, dass für eine nicht vorhandene Variable null zurückgegeben wird.

Ein "gutes" Script verwendet Funktionen mit festgelegten Eingabe- und Ausgabeparametern, die bestimmte Aufgaben vom restlichen Script unbeeinflusst und ohne selbst indirekt zu beeinflussen zu erledigen. Funktionen haben einen eigenen Variablenraum. register_globals kann in diesem keine Variablen ablegen. Aber auch hier gilt, Variablen vor dem ersten lesenden Gebrauch mit einem definierten Wert zu füllen.

Ein "gutes" Script verlässt sich auch nicht auf von außen gesetzte Werte sondern prüft vor dem ersten Lesezugriff, ob ein Wert gesetzt ist und veranlasst eine geeignete Maßnahmen, wenn der Wert nicht vorhanden ist (Default-Wert zurückgeben, Meldung ausgeben, ...).

Ein "gutes" Script wurde mit einem error_reporting-Wert entwickelt, der E_NOTICE-Meldungen nicht unterdrückt (beispielsweise E_ALL), damit diese und andere Schwachstellen (z.B. Vertipper beim Variablennamen) schon beim Programmieren zu Tage treten.

Es gibt noch mehr Dinge, die ein "gutes" Script auszeichnen, aber hier ging es ja nur um register_globals-Aspekte.

echo "$verabschiedung $name";