Hay algunas advertencias con esto, primero uno esperaría que la ruta: /home/ilia/sql.cnf no se encuentre dentro del webroot de su sitio web, o un atacante podría simplemente visitar la url enlace para ver las credenciales de su base de datos.
Además, uno esperaría que su sitio web no incluyera varios errores de divulgación de información o una página de phpinfo ya que phpinfo volcará la matriz $ _SERVER y, por lo tanto, divulgará sus credenciales de base de datos a cualquier visitante de esta página.
Además, la suposición de que sería más difícil para un atacante obtener la información si se almacena en un archivo PHP en comparación con las variables de entorno es basura. Su ejemplo establece las variables de entorno para cada solicitud de página. Eso significa que un ataque transversal a un directorio que puede no tener permisos para leer su archivo sql.conf probablemente todavía tenga permiso para leer / prof / self / environ y obtener las credenciales de esa manera.
Me aseguraría de que su servidor de base de datos esté vinculado a la interfaz de bucle de retorno, que sus credenciales de base de datos tengan los privilegios más bajos posibles y que su aplicación web y el software del servidor estén parcheados de manera oportuna y solo almacenen las credenciales en el archivo php.