Parece ser que la práctica general en estos días es almacenar secretos (por ejemplo, DB, credenciales de API) en un archivo .ENV
y luego cargarlo a $_ENV
y $_SERVER
automáticamente. Esta biblioteca popular hace eso y es incluso alentada como mejor practica Esta biblioteca lo lleva un paso más allá y cifra el valor dentro del archivo .ENV
.
Dicen que todo el propósito es administrar fácilmente las configuraciones de desarrollo / producción y minimizar los archivos de configuración que se envían al control de versiones. Además de "nunca almacenar credenciales confidenciales en su código".
Un problema evidente sobre esto es una simple inyección de print_r($_SERVER)
o print_r($_ENV)
en su código lo revelará todo. O, si olvidó eliminar phpinfo.php
, ¡todo se pierde! También hay otras formas en que podría filtrarse (por ejemplo, los registros).
Estoy bastante desconcertado de que esta práctica sea frecuente o tal vez solo me esté perdiendo algo.
¿Hay algún error en particular con el antiguo antiguo config.php
almacenado fuera de la raíz del documento? Quiero decir que podrías poner eso en git ignore y no va a ser parte de tu código en absoluto. Incluso puedes cifrarlo también. ¿Por qué usar .ENV
?
Actualización:
Aquí hay un artículo que está de acuerdo con mis sentimientos