leyendo la primer entrega del taller de php , me llamo la atencion un comentario acerca de seguridad y mencionan algo que es inyeccion , es para bases de datos ..
alguien me podria explciar que es eso,como hacerlo y como defenderme
gracias a todos
La inyección SQL se produce cuando se inserta o inyecta código SQL dentro del código SQL programado, al fin de alterar el funcionamiento del código programado y lograr que se ejecute el código incrustado en la base de datos.
Algunas formas de evitar la Inyección SQL:
PHP
En el lenguaje PHP, hay diferentes funciones que pueden servir de ayuda para usar con distintos sistemas de gestión de bases de datos. Para MySQL, la función a usar es mysql_real_escape_string:
$query_result = mysql_query("SELECT * FROM usuarios WHERE nombre = \"" . mysql_real_escape_string($nombre_usuario) . "\"");
Parametrización de sentencias SQL
Connection con = (acquire Connection) PreparedStatement pstmt = con.prepareStatement("SELECT * FROM usuarios WHERE nombre = ?");
pstmt.setString(1, nombreUsuario);
ResultSet rset = pstmt.executeQuery();
Escape de las variables a insertar en la sentencia SQL
Escapar el texto contenido en la variable reemplazando los caracteres especiales en SQL por su equivalente textual, de tal forma que SQL interprete todo el contenido de la variable como si fuera texto.
Connection con = (acquire Connection)
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery("SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario.replace("\\", "\\\\").replace("'", "\\'") + "';");
También se puede utilizar el método escapeSQL de la clase StringEscapeUtils procedente de la librería de Apache Commons Lang
Connection con = (acquire Connection)
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery("SELECT * FROM usuarios WHERE nombre = '" + StringEscapeUtils.escapeSQL(nombreUsuario) + "';");
ok muchas gracias bro , estare al pendiente de la seguridad en un proyecto que hago para mi escuela .. me gustaria que me ayudaran con la seguridad para que sea impenetrable
cuando tenga una beta lo subo al foro para ver que mejoras le hacemos
saludos y gracias
Nota : Algun mod que cierre el post