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.