Hola, gente... hace mucho tiempo que no escribo...
Bueno aquí les traigo un nuevo artículo, el cual pretende ayudar a las personas que necesiten realizar consultas SQL al servidor MYSQL, que contengan una coimilla simple.
Normalmente una sentencia SQL se hace de esta forma:
ejemplo.php
Nuestro HTML de ejemplo seria así: index.html
Si el usuario digitara en cualquiera de los campos del HTML algo que contenga una comilla simple ', el sitio devolvería un error, esto se debe a que en SQL la comilla simple es utilizada para delimitar las sentencias, y si enviamos una comilla extra, terminaríamos la sentencia SQL de forma errónea en el servidor. Según esto es que surge el SQL Inyection, se dice que hackers o gente con experiencia puede aprovecharse de esta desventaja para dañar sitios web.
Por ejemplo:
Tomando como ejemplo el código SQL que les escribí anteriormente la sentencia seria leída por el servidor de esta forma:
Al digitarse una comilla simple ' la sentencia seria así: INSERT INTO tabla (Campo1, Campo2) VALUES ('Ejemplo' 1', 'Ejemplo 2')
Bueno para no cansarlos con el cuento, existen muchas formas de evitar esto, dependiendo del servidor de base de datos podríamos usar Procedimientos Almacenados, o simplemente reemplazar la comilla por otro carácter. Pero yo prefiero la siguiente sentencia php para solucionar esto y evitar de una vez y para siempre el SQL Inyection en nuestros sitios:
$vCampo1 = str_replace("'", '\\\'', $vCampo1 );