MudGuard: GPC-Arrays auf SQL-Injection etc. prüfen

Beitrag lesen

Hi,

Und PHP ist über diese Datenquellen nur dann "angreifbar", wenn register_globals=on ist

Du meinst also, bei
mysql_query("DELETE FROM tabelle WHERE ID = ".$_POST['killme']);
ist ungefährlich, wenn register_globals=on ist?

Wenn also jemand einen POST-Request mit
killme=1 OR ID>0
an dieses Script schickt, kann es nicht zu unerwünschten Nebeneffekten kommen?

_und_ unsaubere Programmierung hinzukommt - also Variablen vor ihrer ersten Verwendung nicht sauber initialisiert werden.

Meines Erachtens reicht unsaubere Programmierung alleine aus, register_globals muß dazu nicht auf on stehen.

Das Escapen aller Zeichen dann, wenn sie gebraucht werden
... ist das einzig sinnvolle.

Nö - zusätzlich sollten auch noch Werte auf Sinnhaftigkeit geprüft werden - siehe obiges Beispiel, keines der Zeichen würde escaped werden.
Wenn - s.o. Beispiel - z.B. nur eine numerische ID erwartet wird, sollte auch überprüft werden, daß nur eine numerische ID kommt.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.