Configuracion de database.yml (clave encriptada)

280 views
Skip to first unread message

Gregorio Escalona

unread,
Aug 11, 2010, 3:07:19 PM8/11/10
to symfony-es
Buenas tardes. Me surgio un inconveneinte al desarrollar una
aplicación en symfony 1.4.Segun requerimientos de seguridad de la
empresa el password del usuario que se conecta a base de datos no
puede estar visible en este archivo ya que esto es un bug (Segun
ellos). Laq cuestion es que necesito de alguna manera cambiar la
configuracion y cumplir con sus requerimientos. Tengo una idea pero he
estado provando y no me funciona, si alguno de ustedes tiene una mejor
idea o ya solucionarón dicho problema estaria agradecido henormemente.
Aca dejo el ejemplo de lo que he tratado.

Archivo database.yml

all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=localhost;dbname=correspondencia
username: root
password: <?php Seguridad::getPassword(); ?>

Donde Seguridad::getPassword(); con una semilla y la clave encriptada
en triple DES la desencripto y asi me conecto a la base de datos. He
modificado el Manager.php del Doctrine pero creo q no es la mejor
manera de hacer las cosas. Gracias por su ayuda.

Gregorio Escalona
Venezuela.

Juan Fernando Obando Saldarriaga

unread,
Aug 11, 2010, 3:18:05 PM8/11/10
to symfo...@googlegroups.com
Nunca lo he intentado, pero creo que puedes probar colocando echo:

all:
 doctrine:
   class: sfDoctrineDatabase
   param:
     dsn:      mysql:host=localhost;dbname=correspondencia
     username: root
     password: <?php echo Seguridad::getPassword(); ?>

2010/8/11 Gregorio Escalona <gregorio...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.




--
Juan Fernando Obando Saldarriaga, Ingeniero de Sistemas
Universidad del Valle, Cali, Colombia
jferosal at univalle dot edu dot co

Gregorio Escalona

unread,
Aug 12, 2010, 8:10:34 AM8/12/10
to symfony-es
Jaun gracias por responder.
Pero la solucion que me enviste no me funciona me da un Parse error:
justo en la linea donde coloco el asterisco (*). Ya lo he intentado
con print echo y nada no me funciona. De verdad necesito ayuda de la
comunidad.

Javier Eguiluz

unread,
Aug 12, 2010, 11:03:13 AM8/12/10
to symfo...@googlegroups.com
Hola Gregorio,

2010/8/11 Gregorio Escalona <gregorio...@gmail.com>
Con symfony 1.X no se cómo se hace, pero por si te sirve de algo, te comento que Symfony2 va a permitir sacar del proyecto algunas opciones de configuración sensibles (como por ejemplo las contraseñas). La configuración de la conexión a BD se hará en un archivo de configuración:

<doctrine:dbal dbname="mi_base_de_datos" username="root" />

Pero la contraseña no se pone dentro de ningún archivo de configuración del proyecto. En el archivo httpd.conf del servidor web se establece su valor mediante la siguiente directiva:

SetEnv SYMFONY__DOCTRINE__DBAL__PASSWORD "miSuperContraseña"

Un saludo,
Javier Eguiluz

magarzon

unread,
Aug 12, 2010, 11:27:01 AM8/12/10
to symfony-es
No sé, pero de toda la vida se ha hecho cambiando los permisos de ese
fichero para que sólo pueda acceder a él el usuario www_data o el
_www con el que corre el servidor de aplicaciones.

Pero ten cuidado de configurar bien Apache o el servidor que utilices
para que no se pueda acceder al fichero por url!

Un saludo,
Miguel Angel.

On 12 ago, 13:10, Gregorio Escalona <gregorioescal...@gmail.com>
wrote:

Julian Reyes Escrigas

unread,
Aug 12, 2010, 11:28:49 AM8/12/10
to symfo...@googlegroups.com
El 12/08/10 07:10, Gregorio Escalona escribi�:
tengo entendido que cuando uno coloca php dentro de un archivo YAML uno
tiene que ser cuidadoso con la sintaxis del mismo, segundo entiendo yo
tu funcion devuelve la contrase�a que va a usar la base de datos,
entonces deberias probar

<?php echo tu_function()."\n" ?>

nota que son comillas dobles para que php genere el fin de linea

Gregorio Escalona

unread,
Aug 12, 2010, 3:51:47 PM8/12/10
to symfony-es
Bueno he estado probando todas las opciones q me dan a ver cual me
funciona. En cuanto funcione una de las opciones q me dan u otra que
pienso probar lo monto en este post por si alguien lo necesita.
Muchas Gracias por la ayuda. Gracias a la comunidad Symfony.

aRamireZ

unread,
Aug 13, 2010, 4:48:00 AM8/13/10
to symfony-es
En principio, como comentan los compañeros, con un echo y el "\n"
funciona perfectamente. Yo lo acabo de probar en un proyecto personal:

all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=localhost;dbname=correspondencia
username: root
password: <?php echo Seguridad::getPassword() . "\n"; ?>

Y por supuesto en Seguridad::getPassword() un return del password ya
desencriptado.

Un saludo!


On 12 ago, 21:51, Gregorio Escalona <gregorioescal...@gmail.com>
wrote:

aRamireZ

unread,
Aug 13, 2010, 4:48:16 AM8/13/10
to symfony-es
En principio, como comentan los compañeros, con un echo y el "\n"
funciona perfectamente. Yo lo acabo de probar en un proyecto personal:

all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=localhost;dbname=correspondencia
username: root
password: <?php echo Seguridad::getPassword() . "\n"; ?>

Y por supuesto en Seguridad::getPassword() un return del password ya
desencriptado.

Un saludo!


On 12 ago, 21:51, Gregorio Escalona <gregorioescal...@gmail.com>
wrote:

Gregorio Escalona

unread,
Aug 13, 2010, 9:38:23 AM8/13/10
to symfony-es
Si efectivamente funciona ya lo implemente en mi codigo tal cual
comenta aRamireZ. Realmente agradecido con la comunidad por tan
valiosa ayuda gracias.


Solucionado.

all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=localhost;dbname=correspondencia
username: root
password: <?php echo Seguridad::getPassword() . "\n"; ?>


class Seguridad {

public static function getPassword()
{
return base64_decode($clave);
//se debe usar un metodo mas robusto para
encriptar como Triple Des
> > Muchas Gracias por la ayuda. Gracias a la comunidad Symfony.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Reply all
Reply to author
Forward
0 new messages