elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Como evito SQL Inyection?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Como evito SQL Inyection?  (Leído 4,589 veces)
MazarD
Colaborador
***
Desconectado Desconectado

Mensajes: 885


mazard.info


Ver Perfil WWW
Re: Como evito SQL Inyection?
« Respuesta #10 en: 8 Diciembre 2009, 21:31 pm »

Lo del csrf es muy sencillo, mira:

Imaginemos que tienes un enlace como este: http://foro.elhacker.net/borrar_usuario.php?nick=Skeletron que solo puedes ejecutar cuando estas logueado.
Si yo consigo de algún modo que "hagas click" en el enlace conseguiré que borres tu usuario
Para evitarlo la aplicación web tiene que hacer que esa url no sea siempre válida, para ello lo que se hace es que cuando tu accedes a tu perfil y se muestra el enlace "borrarme" se añade al final un valor aleatorio quedando el enlace asi: http://foro.elhacker.net/borrar_usuario.php?nick=Skeletron&token=adsfadsfadfsafdas además se guarda el token en una variable de sesión.
Entonces en borrar_usuario.php se comprueba que el token existe y corresponde con la variable de sesión.
Así un usuario malintencionado necesitaría tu token para que funcionara, pero como éste cambia en cada formulario ya no es posible.

De todos modos es un ejemplo para que se entienda, el token tambien puede pasarse por post (es lo más común y lo mejor) o por cookie claro y como comenta Nakp si no previenes csrf hay muchos modos de que te obliguen a "hacer click".



« Última modificación: 8 Diciembre 2009, 21:40 pm por MazarD » En línea

-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
irc://irc.freenode.org/elhacker.net
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Como evito SQL Inyection?
« Respuesta #11 en: 8 Diciembre 2009, 22:25 pm »

Claro claro claro.. ya entendí...
Sería como "cerrarle la puerta" al link, que se no se ejecute la operacion, a no ser que se cumpla otra condicion antes..

Podria ser tambien que el admin tenga que ir a algun lugar de la administracion, y haga click en "habilitar borrado de usuarios", y dentro de borrarusuarios.php que mire si en la base de datos si han precionado ese boton...

Como un boton que habilita un boton :P

Ya entendi, ya entendi!!!...

En cuanto a evitar el acceso a direcctorios haciendo el ../../../../, supongo que mi hosting tendrá algun tipo de proteccion para ello!!!!!!.... igualmente, no utilizo algo así en la web... Pero lo tendré en cuenta para alguna vez ;)

Y que me dicen de los ataques: rfi, lfi, ???


En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines