Conexión MySQL

Hola:
Estoy intentando hacer mi primera aplicación con PHP y una base de datos MySQL. Para realizar la conexión a la BD necesito suministrar el usuario y la contraseña en la página PHP. Si hago esto cualquier persona podría entrar y realizar operaciones como borrar o añadir registros. ¿Es esto así?, ¿Cómo puedo evitarlo?. Te agradezco mucho de antemano tu respuesta. Un saludo
Kermo

1 respuesta

Respuesta
1
Cuando vos trabajas con PHP en la página que el usuario ve no tiene forma de ver en el código que usuario o contraseña tienes, dado que PHP es un interprete, por lo que al usuario final le llega una página en HTML. El script de conexión lo interpreta el servidor pero no lo envía dentro del código.
Este script sirve para conectarse. Yo lo llamo "conectar.php"
<?PHP
$db = mysql_connect("host","usuario","contraseña") or die("No se realizo la coneccion");
mysql_select_db("Base de datos",$db);
?>
host= Generalmente se pone 127.0.0.1
Usuario y contraseña= Los que vos poseas para acceder a tu base de datos (generalmente te asignan el mismo de tu ftp)
base de datos= en nombre de la base de datos de tu pagina.
en los scripts restantes lo que tenes que poner al principio es:
<?PHP
include("conectar.php");
?>
y despues el codigo que necesites, por ejemplo:
<?PHP
$querystring = "SELECT * FROM customer WHERE name='$name' and lastname='$lastname' and phonef='$phonef' and phonen='$phonen'";
$result=mysql_query($querystring,$db) or die ("No existen Personas con esas caracteristicas");
$num_rows = mysql_num_rows($result);
...
...
...
..
?>
Si necesitas saber como dar de alta y o cualquier otra cosa, avisame y te mando scripts más completos por mail si quieres para que los analices.
Hola Horacio:
Muchísimas gracias por tu respuesta, si que me sirve, pero todavía tengo una duda:
Este código PHP para la conexión se inserta en una página y esa página está en el sitio donde almacenas las demás páginas .html de tu sitio, supongo. Alguien podría bajarse todo el web (con un programa como el wecopier, ¿p.ejemplo) y ver el código de la página y por lo tanto tu usuario contraseña?.
Ta agradezco mucho de antemano tu respuesta.
Un saludo
Kermo
La verdad es que lo que vos mencionas es muy cierto, a tal punto que uno de mis dominios ha sufrido por eso.
La verdad es que ese tipo de conexiones se hacen así, lo único que podes llegar a hacer para evitar que se vea el usuario y contraseña es algo en java. Con PHP la verdad es que jamas vi algo que permita mantenerlo oculto.
En el caso de mis servidores, el usuario y contraseña es el mismo que para el ftp que tengo.
Lo que suelo hacer es solo un script de conexión como te mostré antes y a ese lo uso para todos los script restantes con el include. Luego me tomo el trabajo de cambiar el usuario y contraseña una vez a la semana de mi página y por lo tanto cambiarlo solo en este script. La verdad es que desde que hago esto nunca tuve problemas. Pero estas indefenso igual.
De hecho, yo jugando un rato, pude entrar a consultar todas las bases de mi servidor "pero de otros dominios que no eran el mio"
Llame por teléfono y desde que explique la situación no pude hacer nada más, ni siquiera bajar el contenido de la web para saber que usuario y contraseña tenia.
Seguramente te aburrí, espero que te sirva de algo.
De todos modos, voy a investigarlo un poco y si se puede ocultar te cuento.
Kermo:
Hice algunas peubas con los programitas que vos mencionas y no me trae ningún usuario ni contraseña, ya que estos la leen como si la estuvieses navegando, por lo que al no entrar directamente al ftp, sino que la navega y digamos a groso modo que hace un "Sabe as...", lo que guarda es solo código HTML, por lo tanto el PHP lo interpreta el servidor y solo manda lo que tiene que mandar.
Espero que esto te deje más tranquilo.
Un abrazo
Horacio
Muchísimas gracias Horacio por todo el trabajo que te has tomado. Estoy un poco más tranquila; llamaré a mi servidor ya que mi caso es el mismo que el que tu me explicas. Gracias otra vez y te pongo entre mis expertos favoritos.
Saludos
Kermo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas