Identificar usuario y proteger bases de datos MySQL

Fonso
29 de Septiembre del 2002
Tengo diseñada una base de datos MySQL, y para acceder a su mantenimiento (altas,bajas,...) por página web, uso el siguiente codigo para comprobar el usuario y passwd, que reside a su vez, en otra base de datos MySQL, a fin de que solo pueda tener acceso la gente identificada

Este es el codigo de login.phtml -----------
Formulario de identificacion :-------

<?php
if (session_is_registered("valido_usuario"))
{
echo "Estas registrado como usuario : $valido_usuario <br>";
}
else
{
if (isset($Fusuario))
{
// Lo ha intentado y ha fallado
echo "Usuario No tiene acceso !";
}
else
{
// Todavia no ha entrado
echo "Acceso restringido a usuarios autorizados. Debe registrarse primero.";
}
echo "<form action="login.phtml">";
echo " <table>";
echo " <tr> <td> <div align="right"><b>Usuario</b></div> </td>";
echo " <td><input type="text" name="Fusuario" size="10" maxlength="10"> </td> </tr>";
echo " <tr><td><div align="right"><b>Clave de acceso</b></div> </td>";
echo " <td><input type="password" name="Fclave" size="12" maxlength="12"></td></tr>";
echo "</table>";
echo "<p><input type="submit" name="Submit" value="Validar"></p>";
echo "</form>";
}
?>

En cada una de las páginas, compruebo que previamente se haya identificado, incluyendo el siguente codigo al inicio :

<?php
session_start();
if (session_is_registered("valido_usuario"))
{
echo "Usuario : $valido_usuario <br>";
}
else
{
?> <script Language="JavaScript">
location='login.phtml'
</script>

<?
}
?>

Pues bien, alguien ha conseguido acceder a las páginas, o a las bases de datos, y me ha borrado todos los registros !!!!

Como puedo proteger mis bases de datos de una manera eficaz ???????

Podeis ver esta web en http://www.espratet.com/mantenimiento.phtml

Gracias por la ayuda.

fonso.


fLIPIS
29 de Septiembre del 2002
Si la base de datos MySQL te pertenece, puedes hacer lo siguiente:

En la tabla user, hay una columna llamada host. Crea solo dos entradas: una con la I.P. 127.0.0.1 y utiliza ese nombre de usuario y contrseña para trabjar con las conexiones PHP-MySQL.

Otra entrada sería con tu I.P. / Host, dado que quizás administres la web en remoto (con MySQL Front o algun otro programa similar)

Y, por supuesto, no permitir en ningún momento que se puedan lanzar consultas desde los formularios.

Para algo de lo que tu quieres, visita mi tutorial "La sana paranoia" en www.flipis.net

Espero que te sea útil

fLIPIS