Seguridad en la búsqueda de texto completo en MySQL

1

¿Está este código a salvo de la inyección de SQL?

$search = $_GET ['search'];
$query = $db->prepare("SELECT COUNT(*) AS num FROM table WHERE MATCH (id,keywords) AGAINST ('$search*' IN BOOLEAN MODE)");
$query->execute();

ACTUALIZACIÓN: Según la respuesta a continuación, cambié mi código y ahora es:

$search = $_GET ['search'];
$tbl_name = 'my_table_name';

$query = $db->prepare("SELECT COUNT(*) AS num FROM $tbl_name WHERE MATCH (id,keywords) AGAINST (:search IN BOOLEAN MODE)");
$query->bindValue(':search', $search . '*', PDO::PARAM_STR);
$query->execute();

Gracias

    
pregunta Misha 08.11.2015 - 04:08
fuente

1 respuesta

1

El código no es seguro contra la inyección de SQL porque no utiliza el enlace de parámetros ni escapa de la entrada del usuario correctamente.

Le recomiendo que eche un vistazo a enlace para obtener una mejor comprensión de cómo funciona la inyección SQL y cómo escribir el código que es seguro contra la inyección de SQL en el lenguaje de programación de su elección.

    
respondido por el Steffen Ullrich 08.11.2015 - 08:12
fuente

Lea otras preguntas en las etiquetas