Me preguntaba si es posible que un hacker realice un ataque de inyección de SQL utilizando solo letras y números. Por ejemplo, echemos un vistazo a este código PHP que usa expresiones regulares en lugar de las funciones incorporadas de PHP:
<?php
$id = preg_replace('/[^a-zA-Z0-9]/', '', $_GET['id']);
$result = $mysqli->query("SELECT * users WHERE id = '".$id."'");
En caso de que se pregunte qué hace el código, elimina todos los caracteres que no son letras o números y ejecuta esa consulta en MySQL. Me preguntaba si un pirata informático podría explotar ese código de alguna manera y, de no ser así, ¿cuál sería la diferencia entre eso y mysqli::prepare
o mysqli::escape_string
?