Estoy trabajando en un sitio web de PHP y mis investigaciones demostraron que es completamente posible que el servidor pueda ser pirateado y que los archivos PHP puedan quedar expuestos. Almaceno el nombre de usuario y la contraseña de MySQL DB dentro de los archivos PHP en forma de constantes, que luego se usan para formar la cadena de conexión.
define("HOSTNAME","hostname.com:2086");
define("DBNAME","databasename");
define("DBUSER","databaseusername");
define("DBPASS","databasepassword!");
/* Defining DB Handler */
try{
$DBH = new PDO("mysql:host=".HOSTNAME.";dbname=".DBNAME, DBUSER, DBPASS);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$DBH->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}
catch(PDOException $e){
echo $e->getMessage();
}
Si, en cualquier caso, los archivos PHP se exponen, esto causaría que la base de datos y su contenido también estén en riesgo. ¿Lo estoy haciendo mal? ¿Existe una mejor manera de garantizar la seguridad de la base de datos incluso si se exponen los archivos PHP?