1. No se comprometa con el control de versiones:
* nunca Almacene las credenciales de su base de datos directamente dentro de su sistema de control de versiones (como GIT). Esto hace que su información confidencial sea accesible públicamente si el repositorio está comprometido.
2. Almacene las credenciales fuera de la raíz web:
* Crear un directorio separado fuera de su raíz web: Este directorio debe estar fuera del directorio `public_html` o` www` donde se almacenan los archivos de su sitio web. Esto evita el acceso directo al archivo de credenciales a través de un navegador web.
* Ejemplo:
`` `Bash
mkdir/rath/to/your/proyecto/config
`` `` ``
3. Use variables de entorno:
* Credenciales de almacenamiento en variables de entorno: Este es el enfoque más recomendado para la seguridad y las mejores prácticas.
* Apache:
`` `apacheConf
Setenv database_host "localhost"
Setenv database_name "your_database_name"
Setenv database_user "your_username"
Setenv database_password "your_password"
`` `` ``
* nginx:
`` `nginx
Env Database_host "localhost";
Env Database_Name "Your_Database_Name";
Env Database_user "Your_Username";
Env Database_password "Your_Password";
`` `` ``
* php:
`` `PHP
$ host =getenv ('database_host');
$ name =getenv ('database_name');
$ user =getenv ('database_user');
$ pass =getenv ('database_password');
`` `` ``
* Use un archivo de configuración dedicado: Almacene la configuración de su base de datos dentro de un archivo de configuración separado fuera de la raíz web.
* Ejemplo: `/Path/to/Your/Project/Config/Database.php`
* Variables de entorno de acceso en php:`$ _env ['database_host']`, `$ _env ['database_name']`, etc.
4. Acceso a las credenciales desde PHP:
* use `getenv ()` function: Variables de entorno de acceso utilizando de forma segura la función `getenv ()`.
* Ejemplo:
`` `PHP
$ host =getenv ('database_host');
$ name =getenv ('database_name');
$ user =getenv ('database_user');
$ pass =getenv ('database_password');
`` `` ``
5. Permisos de archivo seguro:
* restringir el acceso a los archivos: Asegúrese de que el archivo de configuración de la base de datos y su directorio de contenido tengan los permisos mínimos necesarios.
* usa `chown` y` chmod`:
`` `Bash
chown www-data:www-data /path/to/your/project/config/database.php
chmod 600 /path/to/your/project/config/database.php
`` `` ``
Esto establece el propietario y el grupo en `www-data` y restringe el acceso al archivo solo al propietario (leer y escribir).
6. Use .htaccess o .htpasswd para la autenticación:
* restringir el acceso al directorio de configuración: Use archivos `.htaccess` o` .htpasswd` para proteger el directorio que contiene el archivo de configuración de su base de datos.
* Ejemplo:
`` `apacheConf
Authtype básico
AuthName "Credenciales de la base de datos"
Authuserfile /path/to/your/project/config/.htpasswd
Requerir usuario válido
`` `` ``
7. Asegure su servidor:
* Mantenga su servidor seguro: Actualice regularmente su sistema operativo y software de servidor web para parchear las vulnerabilidades de seguridad.
* Use contraseñas seguras: Elija contraseñas seguras para las cuentas de su base de datos y use contraseñas únicas para diferentes aplicaciones.
* Habilite la autenticación de dos factores: Implemente la autenticación de dos factores para las cuentas de su base de datos para agregar una capa adicional de seguridad.
8. Seguridad de la base de datos:
* Use un sistema de gestión de bases de datos (DBMS) con fuertes características de seguridad: Elija un DBMS que ofrezca características como autenticación segura, control de acceso basado en roles y cifrado de datos.
* Auditar y revisar regularmente los privilegios de la base de datos: Asegúrese de que solo los usuarios autorizados tengan los permisos necesarios para acceder y modificar su base de datos.
9. Pruebas de seguridad:
* Realice auditorías de seguridad regulares: Realizar pruebas de penetración y evaluaciones de vulnerabilidad para identificar y abordar posibles debilidades de seguridad.
* Siga las pautas de OWASP (Proyecto de seguridad de aplicaciones web abiertas): Adherirse a las recomendaciones de OWASP para prácticas seguras de desarrollo.
10. Considere alternativas seguras:
* Servicios de gestión secreta: Use servicios de gestión secreta dedicados como Hashicorp Vault o AWS Secrets Manager para administrar las credenciales de su base de datos de forma segura. Estos servicios ofrecen encriptación, control de acceso y capacidades de auditoría.
Resumen de mejores prácticas:
* Nunca almacene credenciales de base de datos en el control de versiones.
* Almacene las credenciales fuera de la raíz web.
* Use variables de entorno o un archivo de configuración dedicado.
* restringir los permisos de archivo y usar `.htaccess` o` .htpasswd` para la autenticación.
* Asegure su servidor y base de datos.
* Realice auditorías y pruebas de seguridad regulares.
* Considere usar servicios de gestión secreta dedicados.
Al implementar estas medidas de seguridad, puede reducir significativamente el riesgo de acceso no autorizado a su base de datos y proteger su información confidencial.