Salve a tutti,

ho un dubbio: ho sentito parlare di sql injection e ho preparato un piccolo script per un amico dove ricercare e ordinare i risultati da un database Mysql.

Vorrei sapere se tale script è sicuro e non è soggetto a violazioni di sicurezza .

Vi posto lo script:




<?php
$conn = mysql_connect("127.0.0.1", "root", "") or die($errConnessione);
mysql_select_db("database") or die($errSelezione);



// Controllo se esite gia il numero di pagina, altrimenti lo setto a 1
@$pag = mysql_real_escape_string($_GET["pag"]);
if (isset($pag) == false || is_numeric($pag) == false || $pag < 1) {
$pag = 1;
}

// Genero le variabili che stanno a rappresentare quali record da estrarre dal DB
$fine = 2;
$inizio = ($pag - 1) * $fine;
?>

<form name="form1" method="get" action="prova.php">
<div align="center">
<table width="51%" border="2">
<tr>
<td width="52%">Marca</td>
<td width="48%"><input name="marca" type="text" id="marca"></td>
</tr>
<tr>
<td>Anno</td>
<td><input name="anno" type="text" id="anno"></td>
</tr>
<tr>
<td>Immagine</td>
<td><input name="immagine" type="text" id="immagine"></td>
</tr>
<tr>
<td>Prezzo</td>
<td><input name="prezzo" type="text" id="prezzo"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Ricerca">


<input type="submit" name="Submit" value="Azzera paramentri di ricerca">
</div></td>
</tr>
</table>


</p></div>
</form>





<?php
@$marca = mysql_real_escape_string($_GET['marca']);
echo $marca;

@$anno = mysql_real_escape_string($_GET['anno']);
echo $anno;

@$immagine = mysql_real_escape_string($_GET['immagine']);
echo $immagine;

@$prezzo = mysql_real_escape_string($_GET['prezzo']);
echo $prezzo;




$were = " WHERE ";
if ($marca != "") {
$were.=" marca= '$marca' AND ";
}
if ($anno != "") {
$were.=" anno= '$anno' AND ";
}
if ($immagine != "") {
$were.=" immagine= '$immagine' AND ";
}
if ($prezzo != "") {
$were.=" prezzo= '$prezzo' AND ";
}
$were.=" 1=1 ";


$query = "SELECT * FROM prova $were";



$rs = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($rs);


if ($num == 0)
echo "<div style=\"text-align:center\">Nessun contatto presente</div>";
else {
if (empty($_GET['ordercampo']))
$_GET['ordercampo'] = "marca";

if (empty($_GET['order']))
$_GET['order'] = "desc";

if ($_GET['order'] == "asc") {
$ordinaVerso = "desc";
}
if ($_GET['order'] == "desc") {
$ordinaVerso = "asc";
}
$query = "SELECT * FROM prova $were order by $_GET[ordercampo] $ordinaVerso ";
$rs = mysql_query($query) or die(mysql_error());
?>



<table id="tabella_moto" border="1">
<tr>
<td align="center">Marca</td>
<td align="center">Anno</td>
<td align="center">Immagine</td>
<td align="center">Prezzo</td>
</tr>
<?php
$query = "SELECT * FROM prova $were order by $_GET[ordercampo] $ordinaVerso LIMIT " . $inizio . ", " . $fine;
$rs = mysql_query($query) or die(mysql_error());
while ($results = mysql_fetch_array($rs)) {
$query = "SELECT * FROM prova $were order by $_GET[ordercampo] $ordinaVerso LIMIT " . $inizio . ", " . $fine;
echo "<tr>";
echo "<td width=\"25%\">$results[marca]</td>";
echo "<td width=\"25%\">$results[anno]</td>";
echo "<td width=\"25%\">$results[immagine]</td>";
echo "<td width=\"25%\">$results[prezzo]</td>";
echo "</tr>";

$ordercampo = mysql_real_escape_string($_GET['ordercampo']);

$order = mysql_real_escape_string($_GET['order']);
} //fine ciclo while
} //fine else nel caso ci sia almeno un contatto nel comune
?>
</table>

<?php
// Trovo il numero di tutti i record presenti nella tabella
$query = mysql_query("SELECT * FROM prova $were", $conn);
$quanti = mysql_num_rows($query);

$intero = $quanti / $fine; //Calcolo il numero di pagine totali
$intero = ceil($intero);
?>






Pagina <?php echo $pag; ?> di <?php echo $intero; ?></p>







<?php
//Effettuo un for che mi scrive tutti i link alle relative pagine
for ($x = 1; $x < $intero + 1; $x++) {
if ($x == $pag) {
?>

<?php echo $x; ?> |

<?php
} else {
?>
<body bgcolor="yellow">
<?php echo $x; ?> |

<?php
}
}
?>

</p>

<?php
mysql_close($conn); //chiudo la connessione
?>


Non sono un programmatore (ed essendo nuovo del forum non so neanche se questa è la sezione giusta dove postare) ma mi sono cimentato per la prima volta nella realizzazione di questo script..l'ho testato e funziona ma non so se è sicuro..

aspetto una vostra risposta,

Saluti.