PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablenprobleme mit der get Methode



jochenjjj
12-11-2003, 12:16
hi zusammen

ich gebe von der seite1.php per link (get-methode) die variable "FK_Tabelle=zahl" an die seite save.php weiter.ich habe auf der seite save.php ein feld
wo diese variable "FK_Tabelle=zahl" ausgewertet wird
.zb.wenn die "FK_Tabelle=1" ist wird die Tabelle Produkt1 gewählt und wenn die "FK_Tabelle=2" wird die Tabelle Produkt2 gewählt.(So brauche ich nur eine save.php zu basteln da die Auswertung komplett Variablen abhängig ist)
Mein Problem:
Wenn jetzt jemand in der URL manuell die Variable "FK_Tabelle=zahl" ändert kann er meine Auswertung durcheinander bringen und meine Tabellen ausspionieren.Was sollte ich ändern?

save.php codestück
--------------------------------------------------------------------
if($_GET["FK_Tabelle"] !="")

{

$query="SELECT * FROM tabelle WHERE ID_ta=".$_GET["FK_Tabelle"];
$result=mysql_query($query) or die("query:'$query' ".mysql_error());


$row_tabelle=mysql_fetch_array($result);
--------------------------------------------------------------------
seite1.php

<? echo '<a href="save_ba.php?FK_Tabelle=', urlencode($row_muster['FK_Tabelle']), '">muster-</a>'

mfg jochen

Gaert
12-11-2003, 13:02
Ganz einfach!

Stichwort SQL Injection - niemals (nieeeemals!) Variablen, die dein Skript von aussen übermittelt bekommt ungeprüft in SQL Queries einbauen.

Ich wiederhole um die Wichtigkeit der Aussage zu unterstreichen: NIEMALS! ;)

Immer überprüfen und validieren was von draussen kommmt - entweder du stellst eine IF oder eine CASE Abfrage vornedran, oder du führst intern ein Array mit gültigen Werten und gleichst den Übermittelten Wert mittels in_array() .

jochenjjj
12-11-2003, 13:04
danke
wie sollte diese anfrage denn ungefähr aussehen
mfg jochen