Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: t4r0x en 4 Septiembre 2015, 01:30 am



Título: [Resuelto] Manera correcta de salvar el contenido de una variable
Publicado por: t4r0x en 4 Septiembre 2015, 01:30 am
Buenas veran mi problema es el siguiente estoy creando un sitio web, tengo un script php ( instalar.php ) que seria ejecutable para "instalar" el sitio web por ejemplo pidiendo al usuario el host, usuario y contraseña de mysql para crear una base de datos y demas, hasta ahi todo bien.

ahora mi pregunta principal es como seria la manera correcta o usual que la gente utiliza  para guardar por ejemplo el nombre del usuario y contraseña de mysql que fueron ingresados en instalar.php y asi usarlos en el resto de scripts de mi sitio web para acceder a mi base de datos que cree.

gracias de antemano!


Título: Re: Manera correcta de salvar el contenido de una variable
Publicado por: 0roch1 en 5 Septiembre 2015, 01:06 am
Lo que yo hago es guardar los datos de configuración en un archivo, por ejemplo ini, yaml o xml.

Si lo guardas en un archivo INI sería algo así.

config.ini
Código
  1. [database]
  2. host = localhost
  3. user = usuario
  4. pass = C0ntra$3nA
  5. db = base_datos
  6.  

Connection.php
Código
  1. config = parse_ini_file('config.ini');
  2. $connection = new mysqli($config['host'],$config['user'],$config['pass'],$config['db']);
  3.  

Claro, primero debes hacer tu clase para crear el archivo de configuración.

Espero te sirva de ayuda.

Saludos.


Título: Re: Manera correcta de salvar el contenido de una variable
Publicado por: t4r0x en 6 Septiembre 2015, 02:04 am
gracias eso se mira bien, solo tengo la duda es seguro mantener este tipo de informacion en texto plano, en la escuela que yo estaba nos dijeron que no era seguro mantener contraseñas en texto plano :P


Título: Re: Manera correcta de salvar el contenido de una variable
Publicado por: engel lex en 6 Septiembre 2015, 06:27 am
gracias eso se mira bien, solo tengo la duda es seguro mantener este tipo de informacion en texto plano, en la escuela que yo estaba nos dijeron que no era seguro mantener contraseñas en texto plano :P

con las conexiones directas a base de datos, no hay muchas opciones, igual no se supone que accedan a allí, yo preferiría definirlo en un .php y hacerle include...


Título: Re: Manera correcta de salvar el contenido de una variable
Publicado por: #!drvy en 7 Septiembre 2015, 17:34 pm
La putada de guardarlo en un INI o cualquier archivo de texto plano que se pueda mostrar simplemente al ser accedido es que si no lo proteges mediante el servidor httpd, lo puede leer cualquiera. Normalmente cualquier servidor HTTPD de producción te va a permitir negar el acceso a ciertos archivos o incluso carpetas. Eso sin embargo es un poco lio ya que te tienes que preocupar que cada cliente lo tenga bien configurado.

Lo mas sencillo es escribir la config en un .php ya que por defecto este no imprime nada si no tiene un echo. Yo hace tiempo me hice una pequeña función para hacer eso. Con la función creas/sobre-escribes un archivo con un array que le hayas pasado. Luego lo puedes incluir fácilmente.

Código
  1. <?php
  2.  
  3. function writeConfig($config=null, $file='config.php'){
  4.    if(!isset($config) || !is_array($config)){
  5.        trigger_error('Config is not an array.', E_USER_WARNING);
  6.        return false;
  7.    }
  8.  
  9.    $config = '<?php return '.var_export($config, true).';';
  10.  
  11.    try { file_put_contents($file, $config, LOCK_EX); }
  12.    catch(Exception $e){
  13.        trigger_error($e->getMessage, E_USER_WARNING);
  14.        return false;
  15.    }
  16.  
  17.    return true;
  18. }

El funcionamiento es muy básico,  llamas a la función writeConfig indicandole el array que tiene que guardar y donde lo tiene que hacer (este ultimo es opcional, por defecto es 'config.php'). Luego solo tienes que declarar una variable incluyendo el archivo para obtener la configuración.

Ejemplo:

Código
  1. // Escribir la configuracion
  2. $config_a = array('hola'=>'mundo');
  3. writeConfig($config_a, 'hola.php');
  4.  
  5. // Obtener (y imprimir) la configuracion
  6. $config_b = include 'hola.php';
  7. print_r($config_b);

El resultado seria:
Código
  1. Array
  2. (
  3.    [hola] => mundo
  4. )

y el archivo 'hola.php' contendría:
Código
  1. <?php return array (
  2.  'hola' => 'mundo',
  3. );

Saludos


Título: Re: Manera correcta de salvar el contenido de una variable
Publicado por: t4r0x en 8 Septiembre 2015, 08:44 am
gracias por las repsuesta, ya tengo varias alternativas definitivamente, gracias #!drvy.