Estoy creando un juego en unity, conectado a un servidor local de MySQL.
Vamos a analizar lo que pasa si alguien se registra con este nombre:
a'); INSERT INTO `users` (`id`, `Nombre`) VALUES (NULL, 'jajaja
(A ver, eso por ejemplo no se podría poner ya que tiene un limite de carácteres, pero es de ejemplo.)
El código es este(es el comando que se manda a la base de datos):
Comando = "INSERT INTO `usuarios` (`id`, `Nombre`) VALUES (NULL, '" + NOMBRE+ "'");
Entonces, al final si tenemos en cuenta que el usuario se pone el código anterior, el resultado sería este:
Comando = "INSERT INTO `users` (`id`, `Nombre`) VALUES (NULL, 'a'); INSERT INTO `users` (`id`, `Nombre`) VALUES (NULL, 'jajaja');
A ver, si, el que intente hacer eso, tendrá que saber muchas cosas, como el nombre de la tabla por ejemplo, pero si descubre todo, podría ejecutar algo, o romper el comando en sí.
(Las tablas tienen obviamente más datos, pero dejé solo el ID y el Nombre para que se entendiese más fácilmente)
¿Cómo podría solucionar esto?
¿Prohibiendo carácteres en los nombres? No me gusta mucho prohibir carácteres pero si no queda otra...
No tengo ni idea de como se podría hacer. No se si hay más comandos, ya que no se casi nada de los comandos de MySQL.
Espero haberme expresado bien, y que me puedan ayudar, gracias por leer!