PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL Injection in limit bekomm sie nicht weg xD



YannicK
04.09.2008, 05:46
$sql ="
SELECT
ID, betreff, text, datum, status
FROM
".$prefix."_kampfberichte
WHERE
empfaenger = '".$session['login_id']."'
ORDER BY
ID DESC
LIMIT
".$seite.",10";
$result = mysql_query($sql) OR die(mysql_error());

das $seite ich bekomms nicht hin das dort keine injeciton entsteht

mit addslashes und htmlentitis gefiltert dan mal '".."' <- bei dem kommt aber bei korrekter eingabe auch ein error und und und..
helft mir xD

Die einzigste lösung bis jetzt das ich es einmal durch floor() werfe..
gibts aber andere lösungen?

-=Player=-
04.09.2008, 10:50
wenn du php 5 benutzt, kannst du die schnittstelle "mysqli_stmt_bind_param" benutzen.
wenn du damit die variablen übergibst, übernimmt php für dich die prüfung.

2called-chaos
04.09.2008, 14:00
Ich gehe mal davon aus das $seite ein Integer ist?

Wie wärs mit

if (is_numeric($seite)) {
// SQL Abfrage
}
else
{
// Fehler oder standardwert oder so
}
?


Mfg

Chaos

ghost0cnc
04.09.2008, 14:40
$sql ="
SELECT
ID, betreff, text, datum, status
FROM
".$prefix."_kampfberichte
WHERE
empfaenger = '".$session['login_id']."'
ORDER BY
ID DESC
LIMIT
".intval($seite).",10"; :wink: