Ho recentemente creato uno script di registrazione PHP per un sito web su cui un amico e io stiamo lavorando. Ho letto i pericoli dell'iniezione di MySQL e mi chiedevo se il mio codice attuale fosse protetto da tali attacchi, o se fossero necessari ulteriori passaggi.
La parte rilevante del codice è la seguente
$email = $_POST['email'];
$username = $_POST['username'];
$username = strip_tags(trim($username));
$email = strip_tags(trim($email));
//Sanitation code I found somewhere..
function mres($var){
$conn = get_my_db();
if (get_magic_quotes_gpc()){
$var = stripslashes(trim($var));
}
return $conn->real_escape_string(trim($var));
}
//Sanitize username
$sanUsername = mres($username);
//Make SQL query
$sql = "SELECT username FROM accounts WHERE username = '$sanUsername' ";
$result = $conn->query($sql);
Grazie in anticipo,
Shawn
EDIT:
Ho aggiornato la query SQL al seguente per utilizzare le istruzioni preparate
//Prepare statement
$prep = $conn->prepare("SELECT username FROM accounts WHERE username = ?");
$prep->bind_param("s", $sanUsername);
$prep->execute();
$result = $prep->get_result();