Páginas: [1]
|
 |
|
Autor
|
Tema: Evitar inyección de SQL en PHP (Leído 2748 veces)
|
Jalbe
Desconectado
Mensajes: 94
|
Hola ... Como podria evitar la inyección de SQL en PHP, pregunto esto porque mi aplicacion en php fue ataca y se borraron algunos registros .... Tengo hecha la validacion con javascript antes de enviar todos los formularios y la validación en php al recibir las variables , aparte de esto el servidor donde tengo alojada la página cambia las ' ingresadas por \' para evitar que cierren mi recepción de texto y escriban sentecias adicionales. Existe alguna otra forma en la que puedan haber hackeado mi aplicacion ? o existe la forma en que puedan hacer que la ' viaje como tal y puedieran inyectar sql ? 
|
|
|
|
|
En línea
|
|
|
|
|
Azielito
|
Hola, mira esto creo que te servira un poco, o sea, sobre la SQL inyection  lorenzo hernandes garica un pequeño error en vuestro script que permitiría a alguien inyectar consultas SQL contra la autenticación de usuario:
$ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contraseña'";
A través de ese sistema ( inseguro ) podemos hacer lo siguiente:
suponiendo que las variables del url son usuario y passwd ,
[script].php?usuario=[usuario valido]'--
Y con eso accederemos ( podrá resultar bajo determinadas condiciones ) a la interfaz protegida sin más que el nombre de usuario. Quedaria asi la consulta:
SELECT * FROM usuario WHERE nombre_usuario='[USUARIO VALIDO]'-- and clave_usuario='$contraseña' NOTA: -- comentará el resto de la consulta , en este caso la comprobación de password.
Así es posible hacer otro tipo de consultas más destructivas:
Usar OR 1 = 1 , ( siempre afirmativa ) etc.
Con versiones de mysql 4.x se pueden enviar consultas sin formato: [CONSULTA 1];[2]... posibilitando aun más una acción destructiva. Esto en el articulo Autentificación PHP para múltiples usuarios usando MySQL
|
|
|
|
|
En línea
|
|
|
|
|
el-brujo
|
Validación con JavaScript es una autentica chorrada, ya que se puede saltar fácilmente. Existe alguna otra forma en la que puedan haber hackeado mi aplicacion ? Si tienes acceso a los logs del apache, hechale un vistazo, quizás encuentres algo (una url muy larga, etc). te recomiendo la lectura de este articulo: http://area51.phpbb.com/docs/guide-standards.htmlDónde hay buenas maneras y consejos de cómo evitar ataques de inyección de SQL. Aquí tienes otro: http://www.7a69ezine.org/ezine/files/ver/15/3.txtAunque no es muy largo, da una idea de como evitar sql inyection. La idea sería "limpiar" la variable $clave, para que sólo admita un password y no comillas tipo 'OR LIKE, etc.
|
|
|
|
« Última modificación: 03 Junio 2004, 05:08 por el-brujo »
|
En línea
|
Give peace a chance
|
|
|
Rentero
Colaborador
Desconectado
Mensajes: 1.157
La paciencia es la madre de la ciencia.
|
Pues eso te diria yo, que limpies cada variable que pueda ser utilizada por un usuario, como el pass, el user, todo lo que se pueda: En php tiene esta funcion para que no lea el contenido html, etc: $clave = htmlspecialchars($clave);
|
|
|
|
|
En línea
|
Firmado.
|
|
|
Lmc
Desconectado
Mensajes: 254
SpanishWebmaster.com
|
Esto podria evitarlas,almenos algunas. $checkmyurl = preg_replace("#(/\*.*\*/)#", "", $_SERVER["REQUEST_URI"]); if (stristr($checkmyurl,'union')) { die(); } Salu2
|
|
|
|
|
En línea
|
Todo lo que necesita un Webmaster.Manuales propios,codigos JavaScript,herramientas,etc.

|
|
|
|
Páginas: [1]
|
|
|
|