Ich will

Ich mache das auch dauernd und bei mir klappt das wunderbar...

z.B. übergebe ich die Variable $_GET["forum"].

PHP:
<?php
$sql = "SELECT forumid, forumname, beschreibung FROM foren WHERE parentforumid = ".$_GET["forum"]." ORDER BY anzeigeid";

@Radhad
Mach deinen Skript halt noch angreifbarer für SQL-Injection.

PHP:
$_GET['forum'] ist jetzt
"1; DELETE FROM foren WHERE 1; SELECT * FROM foren ";

"SELECT forumid, forumname, beschreibung FROM foren WHERE parentforumid = 1; DELETE FROM foren; SELECT * FROM foren ORDER BY anzeigeid";

Lustig, oder?
http://de.wikipedia.org/wiki/SQL_Injection
 
Ich hab dafuer diese beiden Funktionen:
PHP:
function remove_magic_quotes($string)
{
 if (get_magic_quotes_gpc())
 {
  $string=stripslashes($string);
 }
 return $string;
}

function quote_string($string)
{
 return mysql_real_escape_string(remove_magic_quotes($string));
}
Diese Funktionen kann man natuerlich auch in eine packen, jedoch nutze ich remove_magic_quotes() auch fuer Ausgaben von Uebergabewerten, ansonsten werden ja, falls die Magic-Quotes aktiv sind die gequoteten Strings ausgegeben, was ja nicht grad schoen ist.
Immer stripslashes() zu nutzen ist meiner Meinung nach nicht so gut, denn wenn die Magic-Quotes nicht aktiv sind koennte das durchaus den String verstuemmeln.

Zusaetzlich pruefe ich noch ob Werte Sinn machen. Wenn fuer eine numerische ID ein alphanumerischer Wert uebergeben wird ist dann wurde diese mit Sicherheit manuell eingegeben und wird auch keine sinnvolle Abfrage ergeben. Dementsprechend wird hier bereits vor der Abfrage abgebrochen oder umgeleitet.
 
Zurück