Foros del Web » Programando para Internet » PHP »

Seguridad php con acceso a base de datos

Estas en el tema de Seguridad php con acceso a base de datos en el foro de PHP en Foros del Web. Hola. Resulta que tengo un archivo php en el que hago una consulta a una base de datos. Para ello tengo que poner el usuario, ...
  #1 (permalink)  
Antiguo 19/11/2007, 16:56
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 18 años, 5 meses
Puntos: 0
Seguridad php con acceso a base de datos

Hola.
Resulta que tengo un archivo php en el que hago una consulta a una base de datos. Para ello tengo que poner el usuario, nombre y base de datos en el php ($conex= mysql_connect("host","user","pass"). Mi pregunta es: ¿esto es seguro? Vamos, que tener en un servidor un archivo que tiene nombre y usuario de la base de datos sin encriptar ni nada....
Por si preguntais por la aplicacion en concreto, es para conectar el flash con mysql a través de AMPHP.
  #2 (permalink)  
Antiguo 19/11/2007, 18:15
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Re: Seguridad php con acceso a base de datos

Buenas noches:

Sin ser un experto y hasta donde yo se, a no ser que el servidor se desconfigure y sirva la página php en texto plano no hay problema, ya que solamente podría accederse a esos datos descargando directamente el fichero php.

Ahora bien, para evitar precisamente eso, que el servidor sirva el php como texto plano si se desconfigura, se recomienda poner el fichero con los datos de conexión a la bd fuera del arbol de documentos.

Saludos
  #3 (permalink)  
Antiguo 19/11/2007, 19:37
 
Fecha de Ingreso: octubre-2006
Mensajes: 173
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Seguridad php con acceso a base de datos

Hola puedes hacer esto, si ese ficheri lo llamas con otro fichero por medio de
include. puedes agregar esto en la primera linea en el fichero que llama ha ese fichero php.
Código PHP:
define("MY_DEFINE"true); 
y en el otro fichero agregas esto en la primera linea
Código PHP:
if(!defined("MY_DEFINE")) die("Acceso Directo No Permitido!!"); 
de esa forma si alguien hace un llamado a ese fichero e.j
www.midominio.com/pagina_pass.php no podra ver el contenido.
pero si el fichero es llamado por un include con un fichero que si lo tiene definido si entregara la informacion, o en ves del mensaje puedes poner un: header('Location: index.php');
__________________
¨
  #4 (permalink)  
Antiguo 20/11/2007, 03:40
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: Seguridad php con acceso a base de datos

Hola. Por lo que veo lo que haces es simplemente definir una constante y si no se define como verdadera no se puede ejecutar nada del php. Está bien pensado, aunque supongo que con un depurador o tal se podriasaltar esa seguridad (miras el por qué del die, y ves que es porque tienes la constante que sea a false).
No se si se podrá hacer eso que digo, aunque no me parece muy descabellado. En cualquier caso el archivo de configuración en .php va dentro de una carpeta que se la llama AMFPHP y que trae tambien el titipico archivo .htacces, con lo que me juego el pescuezo a que ya viene con su configuración.
De todas formas muchas gracias, y cuando lo suba ya preguntaré por ahi si es seguro (si alguien saca el pass que he puesto, está claro que no :)
Pues eso, que muchas gracias
  #5 (permalink)  
Antiguo 20/11/2007, 07:03
 
Fecha de Ingreso: noviembre-2007
Ubicación: Córdoba
Mensajes: 70
Antigüedad: 17 años
Puntos: 1
Re: Seguridad php con acceso a base de datos

Hola.

Si, es seguro. Normalmente se puede guardar encriptados los datos de los usuarios del sitio, pero los datos de acceso a MySQL no pueden encriptarse, ya que necesitas pasarlos a las funciones de php para conectarse a MySQL. Mientras que esté en un servidor con php, todo archivo php será interpretado por php y no se tendrá acceso a esas variables con las contraseñas. El único imprevisto es que deje de interpretarse php y se muestren como texto plano, y para ese caso, la mejor solución es colocar esos archivos fuera del directorio visible de la web e incluirlos desde php como ya te han comentado. Otra solución es denegar el acceso al archivo de configuración mediante una directiva en el .htaccess.

Pero para tu tranquilidad debes saber que la mayoría de scripts open source que existen, tipo phpbb y tal, tienen las contraseñas de mysql en su archivo de configuración tal cuales.

Saludos.
  #6 (permalink)  
Antiguo 20/11/2007, 09:02
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: Seguridad php con acceso a base de datos

Ok. Muchas gracias. Como nunca habia trabajado con php, no sabia que no se podian bajar los .php directamente como los .html.
  #7 (permalink)  
Antiguo 20/11/2007, 20:32
 
Fecha de Ingreso: septiembre-2003
Mensajes: 51
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: Seguridad php con acceso a base de datos

Hola,
1.-Eso es correcto, el codigo de los archivos PHP que estan en el server no se pueden bajar (hasta ahora).

2.- Busca y Lee el tema de SESIONES EN PHP, es muy importante el cual te permite hacer lo siguiente por ejemplo:
a) Un usuario se loguea
b) Verificas si existe existe el usuario
c) si no existe lo mandas a ke se registre
d) si existe DECLARAS VARIABLES DE SESION como por ejm. $_SESSION["autenticado"]="SI"
e) y cada vez que haces alguna conexion a una pagina verificas primero que $_SESSION["autenticado"]="SI" caso contrario lo mandas al desvio.

Si deseas enviame un mail a [email protected] y te envio codigo de una pequeña aplicacion de PHP-MYSQL-SESSIONES, el cual tiene implementado este tema.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:15.