Blind SQL Injection Acunetix mit
-
20-09-2019 - |
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
erhalten8 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“
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.