Lo haría a menos que incluya comillas simples en el name
publicado. , lo que le permitiría salir de las comillas. Ejemplo, publicar el nombre como:
' or 1 or '
La cláusula WHERE se convierte en:
WHERE id = '' or 1 or '';
Esto coincidiría y recuperaría todas las filas de la tabla debido a or 1
parte. Como puede ver, sale de las comillas para inyectar algo de SQL, luego vuelve a las comillas para que la consulta sea válida.
No, pero si se ejecutó con mysqli_multi_query
entonces sí, podría agregar varias consultas al final.
En general, sí, pero sería mejor una declaración preparada. Usando escape, el WHERE
la cláusula se convertiría (usando mi ejemplo anterior):
WHERE id = '\' or 1 or \'';
Esto ya no es vulnerable porque las comillas no se pueden separar y solo coincidiría con las filas si el name
coincide literalmente con ' or 1 or '
lo que obviamente es poco probable.