Laravel se ha vuelto una herramienta de trabajo acogida por cada vez más programadores PHP para el desarrollo de proyectos, no sólo por su forma de aprontar el desarrollo de un proyecto, sino también por la amplia documentación no solo en su sitio oficial, sino también en varias webs ahora especializadas en este framework que facilita la vida de miles de programadores.
Con el exceso de documentación hace que exista también el exceso de «confianza» en creer que no hay que cumplir cierto tipo de seguridad en los proyectos, aunque sean «en desarrollo» y más cuando tu servidor de desarrollo es un hosting abierto a internet. Lo digo porque hay temas que por más que los lees no se toma mucha importancia.
Los precedentes de seguridad en el archivo .env
En los archivos de Laravel hay un pequeño archivo con información muy sensible llamado «.env» que guarda las variables principales y personales del proyecto (como el archivo wp-config de WordPress) almacena la base de datos, usuarios y contraseña de la misma, accesos al servidor de correo entre otros dependiendo de los módulos que necesite tu proyecto.
El problema del archivo .env
El archivo en si no es peligroso si se sigue las pautas de alojamiento de tu proyecto laravel en un hosting. siempre se debe definir como aterrizaje de la web la carpeta public y no la raíz del proyecto, y, aunque parezca una obviedad os diré porqué muchos, no lo toman en cuenta.
Gracias a un artículo de laravel tips pude ver que muchos usuarios no toman esta medida muy en serio o que el servidor donde se aloja el proyecto no es tan seguro como parece.
Solo ha sido necesario hacer una búsqueda en Google
es entrar a google y poner esto en el buscador
db_password filetype:env
al parecer el robot de google «sin querer» ha podido leer miles de archivos .env que están a la vista pública de los hosting y lo ha devuelto en forma de búsqueda. ¿Qué ha pasado aquí? pues muy simple. NO definieron la carpeta public como carpeta de acceso a la web
Una solución muy sencilla a esto además de colocar la carpeta public es dar permisos de solo lectura (400) al archivo .env
Te recomiendo que revises esto con tu web… sólo por si acaso.
Otros problemas con el archivo ENV
De acuerdo. No has caído en este típico error, pero puede que en este si, y es que también muchos programadores en el archivo ENV cuando el proyecto esta desplegado a internet se olvidan cambiar la configuración APP_DEBUG a false, Así que cada vez que se genere un error en el proyecto se podrá ver el error y las variables del archivo .env en esa visualización
Para evitar este error sólo deber poner APP_DEBUG true en tu archivo .env o en config/app.php agregar las variables que no se vean en array «debug_blacklist»
Con estos consejos tu proyecto laravel (y sobre todo tus datos sensibles) estarán mas seguros.
Sin duda hay que agradecer a laraveltips y a Juan Cuartas por mostrar este problema a la luz
Fuente: