[opensuse-es] seguridad en aplicacion php-mysql
Hola amigos, en la compania donde trabajo estamos probando un software disenado para los fideicomisos (no me pregunten que es un fideicomiso) desarrollado por un contratista bajo php/mysql estaba revisando por encima el codigo y me encontre que cuando la aplicacion es llamada esta carga una pagina que contiene la direccion del servidor de base de datos, el nombre de la base de datos y el usuario y password que utilizaria en la conexion en texto claro y legible por supuesto para poder leer este archivo hace falta ser el usuario que maneja el apache o estar en el grupo del apache, pero sin embargo como la aplicacion no utiliza ningun tipo de ssl para realizar sus conexiones, me parece un poco "ligero" tener esta informacion sin ningun tipo de encripcion. me gustaria saber si hay alguien que haya trabajado con php/mysql, como hace con estos casos en los que es necesario encriptar un password / usuario, etc, dentro de la aplicacion pero sin dejar que la aplicacion pueda leer esta informacion tan necesaria. -- Ciao, Javier linux counter #393724 GPG Key Fingerprint = 46B76CFEDB0161089D9ECB22FEFDE7EBA8C2007E --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
en la compania donde trabajo estamos probando un software disenado para los fideicomisos (no me pregunten que es un fideicomiso) desarrollado por un contratista bajo php/mysql
Buff. Yo no usaría php para nada serio.
estaba revisando por encima el codigo y me encontre que cuando la aplicacion es llamada esta carga una pagina que contiene la direccion del servidor de base de datos, el nombre de la base de datos y el usuario y password que utilizaria en la conexion en texto claro y legible
Normal.
por supuesto para poder leer este archivo hace falta ser el usuario que maneja el apache o estar en el grupo del apache, pero sin embargo como la aplicacion no utiliza ningun tipo de ssl para realizar sus conexiones, me parece un poco "ligero" tener esta informacion sin ningun tipo de encripcion.
me gustaria saber si hay alguien que haya trabajado con php/mysql, como hace con estos casos en los que es necesario encriptar un password / usuario, etc, dentro de la aplicacion pero sin dejar que la aplicacion pueda leer esta informacion tan necesaria.
Varias cosas: - usar ssl. Si hay que enviar usuario y pwd, mejor que sea encriptado. Pero el cliente podrá verlo si es un poco hábil. - usar otra arquitectura: presentación - capa de negocio - bbdd. NO sé si php soporta algo así, pero J2EE nació para esto. El que tomó la decisión de hacerlo en LAMP (presumo que LAMP) tendrá que hacerse responsable de los 'bujeros' de seguridad que deja php (muchos) y los desarrolladores de php (aún más). Por cierto que, no se si febrero o marzo ha sido el mes en que php has sido declarado proyecto del mes para securizarlo. Se trata de encontrar el mayor número de bugs posibles durante un mes para dejarlo lo más seguro posible. -- Saludos, miguel Los agujeros negros son lugares donde dios dividió por cero. Black holes are places where god divided by zero. --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Hola. El Jueves, 8 de Marzo de 2007, miguel gmail escribió:
en la compania donde trabajo estamos probando un software disenado para los fideicomisos (no me pregunten que es un fideicomiso) desarrollado por un contratista bajo php/mysql
Buff.
Yo no usaría php para nada serio.
Por que, hay mucha cosa "seria" hecha en php
estaba revisando por encima el codigo y me encontre que cuando la aplicacion es llamada esta carga una pagina que contiene la direccion del servidor de base de datos, el nombre de la base de datos y el usuario y password que utilizaria en la conexion en texto claro y legible
Normal.
No, no es normal, se puede hacer de muchas maneras, por ejemplo con una hash en MD5 o SHA o SMD5 o Crypt o ........ Mira cualquier aplicacion php conocida por ejemplo phpldapadmin, phpmyadmin, eGroupware, etc
por supuesto para poder leer este archivo hace falta ser el usuario que maneja el apache o estar en el grupo del apache, pero sin embargo como la aplicacion no utiliza ningun tipo de ssl para realizar sus conexiones, me parece un poco "ligero" tener esta informacion sin ningun tipo de encripcion.
Si, yo veria la opcion de ponerla con un hash.
me gustaria saber si hay alguien que haya trabajado con php/mysql, como hace con estos casos en los que es necesario encriptar un password / usuario, etc, dentro de la aplicacion pero sin dejar que la aplicacion pueda leer esta informacion tan necesaria.
Como dije arriba
Varias cosas:
- usar ssl. Si hay que enviar usuario y pwd, mejor que sea encriptado. Pero el cliente podrá verlo si es un poco hábil.
Tampoco hay que ser paranoico. Esta aplicacion es para un banco? esta en una industria que necesita mucha inversion en i+d? (farmaceutica, quimica, aeronautica, automocion) es probable que alguien invierta horas en descifrar un acceso https ( que puede ser con certificado emitido por ti para permitir el acceso) y posteriormente romper un SMD5?
- usar otra arquitectura: presentación - capa de negocio - bbdd. NO sé si php soporta algo así, pero J2EE nació para esto.
si que soporta eso, para eso es LAMP
El que tomó la decisión de hacerlo en LAMP (presumo que LAMP) tendrá que hacerse responsable de los 'bujeros' de seguridad que deja php (muchos) y los desarrolladores de php (aún más).
???
Por cierto que, no se si febrero o marzo ha sido el mes en que php has sido declarado proyecto del mes para securizarlo. Se trata de encontrar el mayor número de bugs posibles durante un mes para dejarlo lo más seguro posible.
Esto es una practica muy habitual en aplicaciones opensource, en kde lo estan haciendo con frecuencia cada vez sobre una aplicacion. El que para otras aplicaciones no se haga, no quiere decir que sean mas seguras. -- Un Saludo. Carlos Lorenzo Matés
--- Carlos Lorenzo Matés <clmates mundo-r.com> escribió:
Hola.
El Jueves, 8 de Marzo de 2007, miguel gmail escribió:
en la compania donde trabajo estamos probando un software disenado para los fideicomisos (no me pregunten que es un fideicomiso) desarrollado por un contratista bajo php/mysql
Buff.
Yo no usaría php para nada serio.
Por que, hay mucha cosa "seria" hecha en php
estaba revisando por encima el codigo y me
aplicacion es llamada esta carga una pagina que contiene la direccion del servidor de base de datos, el nombre de la
encontre que cuando la base de datos y el
usuario y password que utilizaria en la conexion en texto claro y legible
Normal.
No, no es normal, se puede hacer de muchas maneras, por ejemplo con una hash en MD5 o SHA o SMD5 o Crypt o ........
Mira en : http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html Veras que que tiene la opción de conexión -ssl para el cliente mysql. Supongo que para una conexión de php tambien se podrá poner esta opción, si mal no recuerdo cuando se compila php con la opción --mysqli todas estan opciones quedan habilitadas, pero yo nunca lo he llegado a utilizar. Saludos ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
2007/3/8, A C
--- Carlos Lorenzo Matés <clmates mundo-r.com> escribió:
Hola.
El Jueves, 8 de Marzo de 2007, miguel gmail escribió:
en la compania donde trabajo estamos probando un software disenado para los fideicomisos (no me pregunten que es un fideicomiso) desarrollado por un contratista bajo php/mysql
Buff.
Yo no usaría php para nada serio.
Por que, hay mucha cosa "seria" hecha en php
estaba revisando por encima el codigo y me
aplicacion es llamada esta carga una pagina que contiene la direccion del servidor de base de datos, el nombre de la
encontre que cuando la base de datos y el
usuario y password que utilizaria en la conexion en texto claro y legible
Normal.
No, no es normal, se puede hacer de muchas maneras, por ejemplo con una hash en MD5 o SHA o SMD5 o Crypt o ........
Mira en :
http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html
Veras que que tiene la opción de conexión -ssl para el cliente mysql. Supongo que para una conexión de php tambien se podrá poner esta opción, si mal no recuerdo cuando se compila php con la opción --mysqli todas estan opciones quedan habilitadas, pero yo nunca lo he llegado a utilizar.
Hola, gracias a todos por sus respuestas.... si es un banco, ssl seria una opcion para cifrar las conexiones entre servidores, pero realmente esto deja el tema del texto claro todavia pendiente... recuerden que los que estan desarrollando el software (que esta todo listo) tienen que hacer lo que el banco les pida, por lo tanto, no se si alguien por ahi ha visto un manual de como encriptar un password y darselo al php para que genere su string de conexion con la base de datos.... por ejemplo no entendi lo del hash, si yo genero un password encriptado con md5, sha1 o hash...tendria que pegar esos caracteres en la pagina de php? por ejemplo: user: javier password: $1$OURNbYKv$ZRYy otra pregunta..... yo he visto muchas paginas que desencriptan md5, sha,etc...al final creo que estariamos haciendo lo mismo, solo que un poco mas dificil....:( -- Ciao, Javier linux counter #393724 GPG Key Fingerprint = 46B76CFEDB0161089D9ECB22FEFDE7EBA8C2007E --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
ALGUIEN PUSO ESTE MENSAJE PERO NO SE COMO LO RESOLVIO ESPERO ME ACLAREN MI DUDA QUE ES LA MISMA.
4.- instalar la VM con YaST2
Aqui es donde tengo problemas, si instalo en modo de virtualizacion completa, es decir por hw, funciona. Si instalacion con paravirtualizacion es cuando tengo problemas aqui hay algo que se me escapa, no consigo instalar nada. Pero me da que no lo estoy haciendo bien ya que le indico el CD del SLES 10
Te voy a decir tal cual lo hago, porque hay un par de pasos en los que dudo Desde el yast estoy en la pantalla donde se añaden las maquinas virtuales -> añadir Ahi selecciono Ejecutar como programa de instalación de SO (La otra es usar una imagen de disco o un disco fisico que contenga los archivos de arranque del SO) La siguiente pantalla me muestra los parametros de la vm y en el apartado Instalacion del Sistema operativo tengo que indicar el origen de Instalacion Suse: Lo cambio y le digo qu Dispositivo CD/DVD ->Siguiente Me saca Tipo de Soporte CD/DVD Ahi es donde me surge la duda de verdad ¿que cxxxxnes tengo que decir? Yo le marco Origen de Instalacion Suse (la otra opcion es otro origen de instalacion) Yo en el cd tengo metido el cd de una Suse 9.3 (por probar) Le doy a iniciar la maquina y el error que me da es: "Error al extraer el nucleo del origen de instalacion" Por lo que me da que no lo estoy haciendo bien. Si selecciono Otro origen de instalacion me pide: Nucleo compatible con Xen y archivo de instalacion (initrd) y ahi me pierdo no se que tengo que decirle ¿Alguna sugerencia? o que estoy haciendo mal? _________________________________________________________________ Te gusta estar en control, crea tu propia experiencia en Internet http://live.com --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El 8/03/07, javier rojas escribió:
recuerden que los que estan desarrollando el software (que esta todo listo) tienen que hacer lo que el banco les pida, por lo tanto, no se si alguien por ahi ha visto un manual de como encriptar un password y darselo al php para que genere su string de conexion con la base de datos....
Echa un vistazo a la función mcrypt() de php, es posible que te sirva para cifrar los datos de conexión a la base de datos, sin olvidar la conexión mediante ssl y la seguridad de Apache (o el servidor que se ejecute) o la propia configuración de php y mysql: Mcrypt Encryption Functions http://es2.php.net/manual/en/ref.mcrypt.php How to secure the data in your PHP applications http://www-128.ibm.com/developerworks/library/os-php-encrypt/index.html Saludos, -- Camaleón --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (6)
-
A C
-
Camaleón
-
Carlos Lorenzo Matés
-
Carlos Mayoral
-
javier rojas
-
miguel gmail