Django - configurar la base de datos en el lanzamiento

Por razones de seguridad, no quiero tener toda la información de mi base de datos almacenada en texto sin formato en settings.py. Me gustaría cargar la información en la memoria (es decir, configurar la variable de configuración de la BASE DE DATOS) cuando se inicie el servidor Django.

¿Cómo puedo hacer esto?

EDITAR: Creo que hay un malentendido aquí. La idea es compartimentar la seguridad. Si un atacante obtiene acceso con éxito a la máquina django, no quiero que pueda acceder a la base de datos (en una máquina diferente). Esto no es irrazonable. Obviamente, cuando la máquina se reinicie, la información deberá ingresarse nuevamente, pero ese es el costo de la compartimentación completa. Con este enfoque, una violación de la máquina del servidor Django no tendría impacto en la seguridad de los datos.

preguntado el 04 de julio de 12 a las 00:07

En este caso, ¿no tiene esta información de base de datos disponible en algún lugar en texto sin formato también (solo en un archivo diferente, digamos la configuración de su servidor web)? No creo que haya un problema de seguridad siempre y cuando no compartas la información con las personas equivocadas. -

Ver editar. No quiero guardar la información en ningún lugar, quiero ponerla manualmente cuando se inicia el servidor. -

Está bien. El problema al que se enfrenta es que no es tan sencillo pasar este tipo de opciones adicionales a su servidor web (apache, nginx) al iniciar. Honestamente, no veo una forma real de lograr esto sin una solución complicada. -

¿Qué tal crear un archivo que contenga la información de la base de datos y luego establecer la configuración + eliminar el archivo al inicio? Este fue mi pensamiento inicial, pero por lo que sé, Django no tiene señales ni nada para el inicio... -

Algo como esto es posible, pero no puede simplemente eliminar el nuevo archivo fácilmente después. Digamos que crea un nuevo archivo de configuración que debe ser manejado por la aplicación django. Este establece la configuración de la base de datos. Una vez que lo elimine, ¿dónde Django puede acceder a la información? No estoy tan metido en el código Django, por lo que hace muchos ciclos hacia adelante y hacia atrás en la configuración para obtener la información relacionada con la base de datos. -

1 Respuestas

Puede mover la configuración de la base de datos a otro archivo, pero ¿qué gana? Los detalles deberían almacenarse en algún lugar: el servidor no puede cargar los detalles en la memoria y luego eliminar el archivo del que leyó los detalles porque no podrá conectarse a la base de datos la próxima vez que se reinicie.

También complicaría innecesariamente su sistema porque su sistema ya ha sido comprometido cuando alguien puede leer la fuente. Debería preocuparse más por eso que por mover todas las contraseñas (y detalles similares, como las claves API) a archivos especiales en otro lugar.

Respondido 04 Jul 12, 07:07

Ver editar: no quiero guardar la información en ningún lado, quiero ingresarla manualmente cuando se inicia el servidor. - arcologías

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.