Mi código es:
SELECT * FROM tlb_members WHERE username="{mysqli_real_escape_string($_GET['test'])}"
Estoy buscando y algunas personas dijeron que usar comillas en sentencias de SQL es seguro. ¿Es esto cierto?
No desinfectas adecuadamente el parámetro HTTP GET. La única manera buena de evitar la inyección de SQL es usar consultas parametrizadas.
Por favor, eche un vistazo a MeekroDB: enlace esto debería ayudarlo a crear consultas bastante seguras y para mí también es mucho más fácil de usar .
Tenga en cuenta que lo que hoy se considera lo suficientemente seguro, podría cambiar durante la noche. No hay cosas como el 100% de seguridad.
Es casi seguro, excepto en algunos casos de esquina relacionados con ciertos juegos de caracteres . Aún así, no es el enfoque correcto.
Pero antes que nada, PDO con el valor predeterminado la configuración también sufre de los casos de esquina descritos anteriormente.
Todavía hay muy buenas razones para no hacerlo así:
mysqli_real_escape_string
en todo el lugar. Lea otras preguntas en las etiquetas sql-injection php mysql