5

Puede alguien sugerir algunos consejos básicos sobre cómo tratar con aplicaciones web que interactúan con los archivos de configuración httpd.conf como archivos de zona, se unen, etc.¿Qué es una buena práctica para la creación de aplicaciones web que controlan los demonios (y sus archivos de configuración)

Entiendo que es una mala práctica, de hecho, es muy peligroso permitir la ejecución arbitraria de código sin validarlo completamente, y así sucesivamente. Pero supongamos que tiene la tarea de escribir una pequeña aplicación que le permita agregar vhosts a una configuración de Apache.

Tiene su código ejecutado con todos los privilegios, escribe variables futuras en una base de datos y tiene un trabajo cron (con todos los privilegios) ejecuta un script que extrae los vars de la base de datos y los arroja a un archivo de configuración de plantilla , etc.

Algunas reflexiones & se agradecerán las contribuciones sobre este tema.

tl; dr - ¿cómo se puede escribir de forma segura una aplicación web para actualizar/ingresar datos en un archivo de configuración como httpd.conf de Apache, etc.

+0

+1 agradable quesiton – XMen

Respuesta

1

No soy un gurú de la seguridad de Unix, pero algunas cosas básicas pensar en:

  • Asegúrese de que sus carreras de aplicaciones web como un usuario específico, y asegúrese de que el usuario tiene derechos privilegiados únicamente a aquellos archivos que se supone modificar.

  • No permita que las entradas arbitrarias que se añaden a los archivos, tener formas estrictas, donde se valida cada campo para contener sólo las cosas que debe contener, como az y sólo 0-9, etc.

  • uso de HTTPS para acceder al sitio.

Estoy seguro de que hay más por venir de los verdaderos gurús.

0

Entiendo que es una mala práctica, de hecho, es muy peligroso permitir la ejecución arbitraria de código sin validarlo completamente, y así sucesivamente.

Es cierto.

Pero supongamos que tiene la tarea de escribir una pequeña aplicación que le permita a uno agregar fantasmas a una configuración de Apache.

Sin relación con el primer punto. Totalmente no relacionado. De hecho, ¿por qué es el primer punto incluso allí?

Add vhosts es un script simple. Simplemente escribe el guión y haz que funcione. Requiere privilegios extraordinarios. Pero no es "ejecución arbitraria de código". Y será "totalmente validado" (Sea lo que sea lo que signifique. Usted lo escribe. Lo valida).

Esta no es una buena opción para una "aplicación web". Tampoco es una buena opción para un daemon. De hecho, es realmente difícil ver la conexión entre "agregar fantasmas a una configuración de Apache" y "aplicaciones web que controlan daemons".

Es solo un script que solo actualiza un archivo. Nada especial. Requiere privilegios, por lo que solo algunas personas selectas pueden ejecutarlo. Nada especial allí tampoco. Use sudo.

¿Tiene el código de ejecución con todos los privilegios,

Obviamente. El script no puede actualizar los vhosts sin algunos privilegios.

A no ser por "el código" no quieren decir la secuencia de comandos que actualiza los host virtuales. Si te refieres a algo más, como una página web que le permite a alguien leer el script que actualiza los fantasmas. En ese caso, ha combinado el script con la aplicación web que ejecuta el script.

se escribe valores futuros de variables en una base de datos y tener una tarea programada (con todos los privilegios) ejecutar un script que tira de los VARs de la base de datos y los lanza en un archivo de configuración de plantilla, etc.

Claro. La gente hace eso. Parece terriblemente complejo.

Uso celery en vez de rodar su propio procesador de fondo. http://ask.github.com/celery/getting-started/introduction.html

Cuestiones relacionadas