elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 16:30  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Evitar inyección de SQL en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar inyección de SQL en PHP  (Leído 9,302 veces)
Jalbe

Desconectado Desconectado

Mensajes: 94



Ver Perfil
Evitar inyección de SQL en PHP
« en: 3 Junio 2004, 04:06 »

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
no es
CoAdmin
***
Desconectado Desconectado

Mensajes: 9.114


>.<


Ver Perfil WWW
Re: Evitar inyección de SQL en PHP
« Respuesta #1 en: 3 Junio 2004, 04:27 »

Hola, mira esto creo que te servira un poco, o sea, sobre la SQL inyection :)
Citar
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='$contrasena'";

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='$contrasena'
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
ehn
***
Desconectado Desconectado

Mensajes: 17.232


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Evitar inyección de SQL en PHP
« Respuesta #2 en: 3 Junio 2004, 05:06 »

Validación con javascript es una autentica chorrada, ya que se puede saltar fácilmente.

Citar
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.html

Dó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.txt

Aunque 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: 3 Junio 2004, 05:08 por el-brujo » En línea

"elhacker.net es único, por eso no fabrica para otras marcas"  - Prohibido prohibir

Rentero
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.163


La paciencia es la madre de la ciencia.


Ver Perfil
Re: Evitar inyección de SQL en PHP
« Respuesta #3 en: 3 Junio 2004, 06:27 »

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:
Código:
$clave = htmlspecialchars($clave);
En línea

Firmado.
Lmc

Desconectado Desconectado

Mensajes: 254


SpanishWebmaster.com


Ver Perfil WWW
Re: Evitar inyección de SQL en PHP
« Respuesta #4 en: 3 Junio 2004, 10:54 »

Esto podria evitarlas,almenos algunas.
Código:
$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] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda Evitar multiprocesos..
Scripting
shaggy005 1 991 Último mensaje 15 Marzo 2011, 01:32
por gmaucia@hotmail.com
Evitar que te espíen
Seguridad
nishi-kun 7 516 Último mensaje 8 Abril 2012, 02:14
por dato000
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines