¿Qué tan seguro es almacenar las contraseñas en un archivo no accesible?

1

Entonces, estaba pensando en soluciones para guardar contraseñas en archivos de texto (solo porque tengo curiosidad), y pensé, ¿y si guardaba mi archivo en algún lugar que no sea accesible? Mi servidor tiene una carpeta public_html donde se encuentra todo el código, sin embargo, creé un archivo de texto de contraseña en el mismo nivel que ese (y no en la carpeta real).

En este momento, estoy pensando que esto es seguro porque no puede acceder a él a través del sitio web real y, sin embargo, mi código aún puede obtener información de él. Sin embargo, ¿qué tan seguro es esto realmente? ¿Es realmente un paso adelante de almacenarlo en el archivo public_html? ¿Cuáles son algunas maneras (por desgracia, para los piratas informáticos, donde hay una voluntad, hay una manera) de que alguien podría explotar un archivo que no está disponible públicamente?

    
pregunta Joshua Sparkel 19.03.2018 - 01:21
fuente

1 respuesta

3

Depende de qué contraseñas estás hablando. Usando Wordpress como ejemplo, wp-config.php contiene el nombre de usuario y la contraseña de DB.

Generalmente se acepta la práctica recomendada para mover el archivo a una carpeta no accesible desde la web (es decir, fuera de public_html). De esa manera, una falla catastrófica de php, no hará que alguien pueda ver su contraseña simplemente visitando yoursite.com/wp-config.php

Sin embargo, esos son nombres de usuario y contraseñas de DB, no el nombre de usuario y las contraseñas de Wordpress. Las credenciales de usuario de Wordpress se almacenan en la base de datos (y están en hash). Wordpress necesita almacenar estas credenciales de base de datos en algún lugar y, por definición, no puede estar en la base de datos (no puede almacenar algo hasta que se conecte).

Si un hacker logró obtener Code-Execution en tu caja de Wordpress (lamentablemente esto no es tan raro como crees). Luego, el pirata informático podría simplemente navegar a cualquier carpeta visible y ver los archivos que tienen las contraseñas (ya sea en Public_HTML o en cualquier otro lugar): inicie sesión en la base de datos y obtenga los hashes. Entonces ella podría encontrar la contraseña de texto simple forzándola con fuerza bruta en su máquina local, o simplemente actualizar el Hash en la base de datos a algo que ella sepa.

En resumen, el almacenamiento de las credenciales de la base de datos en archivos en un servidor, en una carpeta no accesible desde la web (fuera de public_html) está bien. No debe almacenar las credenciales de la aplicación (ni ninguna otra credencial) en ninguna carpeta del servidor.

    
respondido por el keithRozario 19.03.2018 - 04:46
fuente

Lea otras preguntas en las etiquetas