Ocultar información de inicio de sesión de la base de datos en código PHP

Soy un principiante total en la progtwigción web. Estoy tratando de crear un sitio web simple que está leyendo datos de una base de datos SQL. Al principio solo escribí la contraseña de mi base de datos y me registré directamente en el código php:

 

¡Esta obviamente no es una muy buena idea! Entonces, ¿cuál es una forma (mucho) más “segura” de hacer esto? Leí sobre poner el código php en un archivo separado, es decir, no en el documento php principal del sitio web, y luego restringir el acceso a ese archivo. Tal vez por un archivo .htaccess. ¿Es este el camino a seguir?

El archivo config.php y .htaccess es una manera clásica / buena de ir . Es la forma en que generalmente se hace con CMS o frameworks.

Como señaló JohnP , también puede almacenar config.php fuera del directorio público , lo que significa que no se puede acceder a través de HTTP. Esto es solo un poco mejor para la seguridad (si no comete un error con su .htaccess, no hay más riesgos).

Ejemplo de estructura de archivos:

  • config/ -> archivos de configuración
  • lib/ -> bibliotecas y utilidades archivos PHP
  • public/ -> todas sus páginas / archivos / imágenes públicas …

De esta forma, http://www.your-site.com/ apunta a public/ , por lo que no hay forma de acceder a la configuración. Pero esta solución implica que puede cambiar el directorio web raíz (o que ya es así).

Finalmente, debe recordar establecer que este archivo sea legible y que el usuario de Apache pueda escribirlo, no todos (derechos de acceso a archivos UNIX), de modo que si alguien obtiene acceso a su servidor a través de otro usuario, no puede leer el archivo.

Normalmente lo pone en un archivo de configuración y accede a los valores de configuración a través de PHP.

Por lo general, un proyecto está organizado de manera que el código de su aplicación y su código de configuración se encuentre fuera de su webroot y solo sus recursos públicos (index.php, imágenes, scripts u otros recursos) estén disponibles a través del acceso directo.