Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: dimitrix en 29 Marzo 2010, 19:17 pm



Título: Programando de una db segura con PHP [Duda]
Publicado por: dimitrix 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?


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: Nakp 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


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: ^Tifa^ 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)


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: dimitrix en 29 Marzo 2010, 19:43 pm
Más que un XSS me preocupa un SQLi :-/


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: Nakp 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


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: ^Tifa^ 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


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: Nakp 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


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: dimitrix en 29 Marzo 2010, 20:25 pm
Muchas gracias a los dos.


Título: Re: Programando de una db segura con PHP [Duda]
Publicado por: дٳŦ٭ 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á.