Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   informacion de conexión a mysql en un archivo ini?? (https://www.clubdelphi.com/foros/showthread.php?t=50348)

FFe_ 15-11-2007 07:06:32

informacion de conexión a mysql en un archivo ini??
 
hola a todos!
hace poco comence a desarollar un pequeños sistemita para administrar un base de datos con información de alumnos de un curso (notas, asistencia, etc). dicho sistema está pensado para ser utilizado en distintos servidores, para lo cual cree un script de "instalación" (es simplemente un Form que pide que se ingresen los datos servidor mysql (nombre del host, nombre de usuario, contraseña y también el nombre de la base de datos) y luego crea las tablas necesarias).

para que los el resto de los scripts PHP (los que se encargan de la modificacion de las tablas) puedan conectarse a mysql, decidi guardar los datos de la conexión (host, usuario, contraseña) en un archivo .ini (que es parseado antes de llamar a mysql_connect () para obtener los datos necesarios).

aquí mi pregunta de novato...
¿está bien esto?¿es seguro dejar la contraseña y el usuario en un archivo en el servidor web? ¿hay alguna otra forma de hacer esto?(luego de crear el archivo .ini, le hago chmod (0600), pero no sé si esto funciona o está bien...)

desde ya muchas gracias por su atención y por los consejos que pudieran darme.
un saludo...

poliburro 15-11-2007 07:10:14

Es seguro en tanto no sea una cuenta con privilegios de root.

FFe_ 15-11-2007 07:26:39

gracias por la pronta respuesta!

no... la informacion de la cuenta que está guardada en el .ini es de un usuario que sólo tiene privilegios para modificar su base de datos... (ningun privilegio global)

pero, justamente, ¿no podría usarse esa información para cambiar las tablas de dicho usuario... (por ejemplo, alguno de los alumnos sque se entera de que en ese archivo está esa información y decide darse por aprobados un par de exámenes...)?

Héctor Randolph 15-11-2007 07:53:20

Vamos a poner un caso:

Si el archivo de configuración está dentro de las carpetas públicas del servidor web, entonces puede haber problemas. Dado que el servidor web no reconoce la extensión *.ini no tiene forma de interpretarlo, supongamos que alguien escribe el nombre del archivo ini en la barra de direcciones del navegador web, el resultado sería que el servidor web despliega su contenido o bien, permite la descarga del archivo. Como vez esto no es seguro pues dejas expuesta la infomación de tu conexión incluyendo las contraseñas. Una manera simple para protegerlo es denegar el acceso a estos archivos ini dentro de la configuración del servidor web.

Si estás utilizando Apache puedes crear un archivo .htaccess en la carpeta que contiene los archivos ini de configuración y colocar estas líneas

Código:

<files *.ini>
order deny,allow
deny from all
</files>

Saludos

FFe_ 17-11-2007 18:41:37

muchas gracias de nuevo... esto se pone interesante...

Había pensado en denegar el acceso al archivo a travez del servidor (que dicho sea de paso, no tenía la más mínima idea de como harcelo... ¡muchas gracias!):)

Según me parece, esta es la manera más segura de hacerlo, ¿no?

el problema es que no sé en que servidor va a utilizarse este sistemita, y tampoco sé si tiene acceso a los archivos .htaccess...

por eso cuando creo el archivo, le hice chmod (0600)... pero no sé si esto sirve para algo... (hice la prueba, y el navegador lo abre lo mismo, a pesar del chmod)...

la verdad que no entiendo mucho de seguridad en la web... no se me ocurre como solucionarlo...

muchas gracias igual por todos sus aportes!!

walito 19-11-2007 22:58:18

Un archivo.ini para cualquier browser lo va a mostrar como un archivo de texto, osea que se a ver todo lo que tenga.

ahora si vos usas un archivo.ini.php el browser lo va a ejecutar como un php, mientras no tengas un echo adentro no hay ningun problema.

Por ejemplo:

config.ini.php
Código:

<?php
$Config_mysql_server = 'localhost';
$Config_mysql_user = 'usuarioXX';
$Config_mysql_pass = 'claveYY';
$Config_mysql_db = 'dbZZ';
?>

eso podes usar. Mientras no tengas un echo todo bien, normalmente solo seteas variables dentro de un archivo asi, en realidad podes hacer lo que se te antoje, pero para seguir un orden y prolijidad te recomiendo asi.

Saludos

FFe_ 23-11-2007 16:42:35

muchas gracias! estaba pensando en eso, justamente. Pero, no se me habia ocurrido declararlas como variables :p.

me seguiré informando... y ante cualquier eventualidad, volveré.

muchas gracias por todo.


La franja horaria es GMT +2. Ahora son las 15:13:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi