No man yo no he dicho que estoy usando el mismo usuario como quien dice con altos privilegios para la base de datos , pero aun asi me refiero a que el usuario aunque solo sea capaz de hace inserciones de datos igual pueden ver la contraseña.
No mira, esque ahi tambien la estas regando :P en la DB no se debe guardar la contraseña en texto plano, sino el HASH de la misma.
Así aunque el "atacante" logre obtener el pass, tiene que emplear un ataque de fuerza bruta para obtener el password.
Mira, por ejemplo, encontré este código por ahi... Lo que se hace en PHP es chekear el HASH que esta almacenado en la base de datos. Nunga guardas textos planos:
<?php
/* Check user details */
$passwordHash = sha1($_POST['password']);
$sql = 'SELECT username FROM user WHERE username = ? AND passwordHash = ?';
$result = $db->query($sql, array($_POST['username'], $passwordHash));
if ($result->numRows() < 1)
{
/* Access denied */
echo 'Sorry, your username or password was incorrect!';
}
else
{
/* Log user in */
printf('Welcome back %s!', $_POST['username']);
}
?>
Como veras, en ningun momento (a excepcion de la ejecucion), se conoce el password.
Puedes tener un usuario para la BD que únicamente tenga acceso a la lista de USER/PASS y que sirva para realizar la validación.
Leete esta página, ahi explican de una manera bastante sencilla, una forma segura de verificar passwords.
http://phpsec.org/articles/2005/password-hashing.html