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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Programando de una db segura con PHP [Duda]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programando de una db segura con PHP [Duda]  (Leído 3,375 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Programando de una db segura con PHP [Duda]
« en: 29 Marzo 2010, 19:17 pm »

Mi pregunta es:

¿Cual es la mejor forma de controlar que no te la 'intenten colar' en un formulario?

Yo había pensando en un archivo por ejemplo 'limpieza.php' e importarlo cada vez que use el SQL con una función que limpie la variable.

Otra opción creo que era algo como escapar caracteres HTML.

¿Cual es la mejor opción?


En línea




Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Programando de una db segura con PHP [Duda]
« Respuesta #1 en: 29 Marzo 2010, 19:33 pm »

la mejor opcion desde un principio es usar mysqli o PDO con prepared statements y nunca filtraras una variable ;)

la segunda opcion es simplemente escapear todo con mysql_real_escape_string()

por ultimo al imprimirlo siempre utilizar htmlentities() si no quieres imprimir codigo para que sea interpretado por el navegador :P


En línea

Ojo por ojo, y el mundo acabará ciego.
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Programando de una db segura con PHP [Duda]
« Respuesta #2 en: 29 Marzo 2010, 19:41 pm »

Puedes implementar lo que solicitas a nivel de lenguaje de programacion o a nivel de Base de datos.

A nivel de programacion, tienes por ejemplo lo que recomienda Napk.... (habran mas a lo mejor, pero no es mi area  ;) )

A nivel de base de datos, puedes dar uso de procedimientos almacenados, limitar cuales clausulas utilizara el usuario por defecto para la base de datos, puedes inclusive usar herramientas extras como MySQL Proxy (Esto es una aplicacion que ofrece la empresa de MySQL luego SUN y ahora Oracle ya que Mysql es de Oracle  :xD ) esta herramienta, es especifica para filtrar todo lo que llega ya que la consulta pasa por esta antes de llegar al motor de MySQL (Esta herramienta la desarrollo MySQL para evitar los SQL Injections segun..) Tambien tienes otra herramienta llamada GreenSQL que haria lo mismo....

Pero a nivel de DB, nada mejor que los procedimientos almacenados o funciones (siempre y cuando no quieras dar uso de aplicaciones extras)
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Programando de una db segura con PHP [Duda]
« Respuesta #3 en: 29 Marzo 2010, 19:43 pm »

Más que un XSS me preocupa un SQLi :-/
En línea




Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Programando de una db segura con PHP [Duda]
« Respuesta #4 en: 29 Marzo 2010, 20:00 pm »

ten en cuenta que los procesos almacenados no puedes utilizarlos si no usas PDO o mysqli (no funciona con el driver tradicional) y consecuentemente es mucho mas logico y comodo (desde el punto de vista del programador) e igual de seguro, utilizar las sentencias preparadas :P

ambas opciones que to doy son anti sqli :xD
En línea

Ojo por ojo, y el mundo acabará ciego.
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Programando de una db segura con PHP [Duda]
« Respuesta #5 en: 29 Marzo 2010, 20:10 pm »

No funciona PHP con los procedimientos almacenados con el modulo tradicional  :-X 

De esto no tenia constancia... en Perl al menos con su modulo DBI::Mysql funciona tanto tipo consulta SQL como si llamaras un procedimiento con la clausula CALL (sigue siendo una consulta SQL aunque llames un procedimiento en vez de pasar la consulta completa escrita).

Me gustan los procedimientos porque todo el trabajo lo hace el motor, por ende si tienes alguna falla en tu codigo que puedan traspasar y colarse al motor MySQL, quedara mas dificil vulnerar este si todo se maneja por procedimientos.... podria tambien implementar el las dos cosas, proteccion por codigo y por DB
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Programando de una db segura con PHP [Duda]
« Respuesta #6 en: 29 Marzo 2010, 20:22 pm »

jeje es por algo que ese modulo esta siendo deprecado en php 5.3 y obsoleto en php6... ademas de no soportar otro millar de cosas y ser mas lento que las otras opciones mencionadas xD
En línea

Ojo por ojo, y el mundo acabará ciego.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Programando de una db segura con PHP [Duda]
« Respuesta #7 en: 29 Marzo 2010, 20:25 pm »

Muchas gracias a los dos.
En línea




дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Programando de una db segura con PHP [Duda]
« Respuesta #8 en: 1 Abril 2010, 05:51 am »

Insisto, no es mala onda pero no estabas muerto?, eso solo duda...

Y 2, leete los post con chincheta, ahí puse algo que te ayudará.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA]Como inicio session segura en el foro?
Sugerencias y dudas sobre el Foro
wACtOr 6 4,199 Último mensaje 1 Diciembre 2010, 02:42 am
por Carloswaldo
Duda en Transmision segura de datos entre JSP [RESUELTO]
Desarrollo Web
h3ct0r 0 2,262 Último mensaje 9 Mayo 2011, 18:58 pm
por h3ct0r
[Batch] Duda programando un Controlador
Scripting
Geormarsch 5 3,933 Último mensaje 6 Noviembre 2011, 05:02 am
por s00rk
[Ayuda] [Duda] Programando un Robot en Java « 1 2 »
Java
ChinoKuun 10 6,646 Último mensaje 21 Enero 2015, 07:51 am
por ChinoKuun
Pequeña duda programando bat
Scripting
joitronix 0 1,879 Último mensaje 25 Febrero 2016, 15:56 pm
por joitronix
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines