2nd
Aktives Mitglied
Thread Starter
- Dabei seit
- 25.07.2004
- Beiträge
- 9.018
- Reaktionspunkte
- 243
Moin,
ich mache mir gerade Gedanken über das Behandeln von manipulierten $_GET-Paramtern per URL. Angenommen ich übergebe in einem Link einen Parameter, der in meiner Datenbank der Schlüssel zum Tupel ist:
Soweit so gut, der Wert für "parameter" (z. B. 20) wurde vorher von meinem Script erzeugt und ist valide.
Es gibt ja Leute, die finden es toll, die URL-Parameter zu ändern, d. h. irgendjemand ändert z. B. die Zahl in der URL 20 in 220a.
Nun findet mein Query natürlich keine Daten dazu. Ich frage mich, was ich in dem Fall am elegantesten machen kann:
1.) wenn der Datensatz leer ist, auf eine HTML-Fehlerseite umleiten mit validem Link zurück? -> Nachteil: komische HTML Seite
2.) vorher einmal alle gültigen IDs in einen Array (PHP) einlesen und dann mit array_exists vor dem SELECT ... WHERE Query die ID aus der URL überprüfen und wenn nicht vorhanden dann ID automatisch auf den ersten gültigen Eintrag setzen? -> Nachteil: irgendwie Holzhammer oder?
3.) vor dem Datenquery einen COUNT() - Query zu machen und bei 0 Einträgen den ersten gültigen Tupel auslesen? -> Nachteil: 2 Querys hintereinander
Ich hätte es schon gerne, dass ich nicht auf eine Fehlerseite umleiten muss, sondern bei manipulierten $_GET Parametern automatisch den ersten gültigen Eintrag anzeige. Wie kann man das am elegantesten machen? Irgendwie sagt mir ja die 3. Methode am meisten zu! Was meint Ihr?
2nd
P.S.: Ja ich weiss, SELECT * macht man nicht, ist nur ein Bsp.
ich mache mir gerade Gedanken über das Behandeln von manipulierten $_GET-Paramtern per URL. Angenommen ich übergebe in einem Link einen Parameter, der in meiner Datenbank der Schlüssel zum Tupel ist:
PHP:
if (isset($_GET['parameter'])) $id = $_GET['parameter'];
$selectQuery = "SELECT * FROM table WHERE id = '$id'";
Soweit so gut, der Wert für "parameter" (z. B. 20) wurde vorher von meinem Script erzeugt und ist valide.
Es gibt ja Leute, die finden es toll, die URL-Parameter zu ändern, d. h. irgendjemand ändert z. B. die Zahl in der URL 20 in 220a.
Nun findet mein Query natürlich keine Daten dazu. Ich frage mich, was ich in dem Fall am elegantesten machen kann:
1.) wenn der Datensatz leer ist, auf eine HTML-Fehlerseite umleiten mit validem Link zurück? -> Nachteil: komische HTML Seite
2.) vorher einmal alle gültigen IDs in einen Array (PHP) einlesen und dann mit array_exists vor dem SELECT ... WHERE Query die ID aus der URL überprüfen und wenn nicht vorhanden dann ID automatisch auf den ersten gültigen Eintrag setzen? -> Nachteil: irgendwie Holzhammer oder?
3.) vor dem Datenquery einen COUNT() - Query zu machen und bei 0 Einträgen den ersten gültigen Tupel auslesen? -> Nachteil: 2 Querys hintereinander
Ich hätte es schon gerne, dass ich nicht auf eine Fehlerseite umleiten muss, sondern bei manipulierten $_GET Parametern automatisch den ersten gültigen Eintrag anzeige. Wie kann man das am elegantesten machen? Irgendwie sagt mir ja die 3. Methode am meisten zu! Was meint Ihr?
2nd
P.S.: Ja ich weiss, SELECT * macht man nicht, ist nur ein Bsp.