Frage

hallo im, Acunetix mit meiner Website testen das Problem ist, mit diesem Skript http://boedesign.com/blog / 2007/02/18 / ajax-Sterne-Rating /

Acunetix tut jede Meldung, aber wenn ich für Blindtest SQL kann ich Werte wie

erhalten
8 and 1=0 --
8 and 31337-31337=0

in der rating_id mysql Spalte, ich möchte nur, damit Zahlen drin, so dass ich ein wenig fix gemacht, aber da die erste Zahl 8 sein Vergehen trought den wenn ja, wie kann ich es beheben? seine so etwas wie dies zumin / rating_process.php

// IF JAVASCRIPT IS ENABLED
if($_POST){
$id = escape($_POST['id']);
$rating = (int) $_POST['rating'];

if($rating <= 5 && $rating >= 1 && $id >= 1 && $id <=9999999){

if(@mysql_fetch_assoc(mysql_query("SELECT id FROM ratings WHERE IP = '".$_SERVER['REMOTE_ADDR']."' AND rating_id = '$id'")) || isset($_COOKIE['has_voted_'.$id])){

echo 'already_voted';  
} else {

und fast das gleiche denken an die „// Javascript deaktiviert ist“

War es hilfreich?

Lösung

Wenn Sie wissen, dass das Rating eine ganze Zahl sein muss, können Sie Ihre Variable als Integer Stimmen:

$rating = (int) $_POST['rating'] ;

Sie können auch auf Ihrem id Variable tun.

Sie stellt sicher, Sie, dass Sie nur ganzzahlige Werte haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top