Verfasst: 08.10.2008 15:51
Nein, die kann man erstens auch anzeigen lassen (mit entsprechenden Browser Entwickler Plugins) und zweitens kann man die auf die gleiche Weise umgehen.
Es wäre besser wenn du die Dinger per [php:htmlspecialchars] oder [php:htmlentities] vorbereitest (die Funktionen so benutzen, dass sie auch Anführungszeichen escapen!).
Grundsätzlich solltest du bei allen Daten vom User immer den Datentyp prüfen oder zumindest sicherstellen dass der Datentyp korrekt ist. Also im Fall von $_GET['u'] wäre z.B. etwas wie ziemlich ganz oben in deinem Code ziemlich sicher. Egal was in $_GET['u'] drin steht, es bleibt nur der Integer Teil übrig.
Immer den Datentyp erzwingen, absichern oder prüfen (z.B. mit [php:is_numeric]) und im Zweifel die Verarbeitung abbrechen! Wenn du etwas in die Datenbank einträgst dann sollte das durch Funktionen laufen die sicherstellen, dass dir der Eintrag das Query nicht zerstört, sonst bist du anfällig für SQL Injections.
Es wäre besser wenn du die Dinger per [php:htmlspecialchars] oder [php:htmlentities] vorbereitest (die Funktionen so benutzen, dass sie auch Anführungszeichen escapen!).
Grundsätzlich solltest du bei allen Daten vom User immer den Datentyp prüfen oder zumindest sicherstellen dass der Datentyp korrekt ist. Also im Fall von $_GET['u'] wäre z.B. etwas wie
Code: Alles auswählen
$_GET['u'] = intval($_GET['u']);
Immer den Datentyp erzwingen, absichern oder prüfen (z.B. mit [php:is_numeric]) und im Zweifel die Verarbeitung abbrechen! Wenn du etwas in die Datenbank einträgst dann sollte das durch Funktionen laufen die sicherstellen, dass dir der Eintrag das Query nicht zerstört, sonst bist du anfällig für SQL Injections.