Respuestas
may. 07, 2007 - 07:08
a) El gestor de bases de datos (MySQL)
b) El servidor web (probablemente apache)
c) La aplicación
Cada uno de estos puntos tiene diferentes implicaciones, pero a grandes rasgos serían:
a) Restringir el acceso al MySQL. Lo ideal sería que estuviese en una máquina dedicada y sin acceso directo desde el exterior. Por supuesto, usar contraseñas y no permitir conexiones más que desde los frontends que lo necesiten (la máquina en la que corra el servidor web)
b) Utilizar versiones actualizadas y parcheadas del servidor web y el PHP. Utilizar buenas prácticas de configuración como por ejemplo no permitir los listados de directorios.
c) La aplicación probablemente sea la parte más difícil de controlar. Es muy importante controlar las entradas de los usuarios para evitar caracteres extraños que puedan facilitar la inyección de SQL, así como la longitud de las entradas para evitar buffer overflows, etc...
Cada uno de estos puntos podría extenderse muchísimo. Si tienes dudas más concretas dilas, por favor.
may. 07, 2007 - 09:26
No te olvides de también hay que asegurar el Apache (o el server web).
Links:
Estos son un poco viejitos, pero te van a dar una noción básica:
Securing Apache: Step-by-Step: http://www.securityfocus.com/infocus/...
Securing PHP: Step-by-Step: http://www.securityfocus.com/infocus/...
Securing MySQL: step-by-step: http://www.securityfocus.com/infocus/...
Este es un checklist: http://aymanh.com/checklist-for-secur...
Esta es un artículo (en 3 partes) que es espectacular en lo que a concejos sobre como escribir aplicaciones PHP seguras: Writing Secure PHP: http://www.ilovejackdaniels.com/php/w...
may. 07, 2007 - 11:50
#poncho:
En realidad necesitaba unas nociones básicas para comenzar a buscar por internet. En mi plan de diseño necesitaba pensar en todos esos aspectos que debo vigilar para poder implementar una aplicación medianamente segura, factores que desconozco debido a mi inexperencia en el tema. Mi pregunta ya ha sido contestada, pero si no les molesto te planteo dos más. ¿A qué te refieres con "evitar listados de directorios"? y por otra parte, a la hora de diseñar aplicaciones que sean escalables, ¿qué problemas de vulnerabilidad/inestabilidad se presentan cuando las cosas empiezan a tener un tamaño respetable? ¿Es necesario adoptar desde un principio algun conjunto de medidas para "curarse en enfermedad" en un futuro?
#gonzo:
Gracias por los enlaces. Necesitaba algo por donde comenzar, para luego profundizar en el tema. ¿Tienes algún otro enlace de la misma temática que consideres imprescindible?
PD: Es mi primera pregunta en quomon, y quizás las réplicas debí lanzarlas como cuestiones por separado y no en esta respuesta. Si es así indíquenmelo. Gracias
may. 08, 2007 - 00:28
La escalabilidad de las aplicaciones no debería ser problema si están bien diseñadas :) La aplicación debería ser la misma tanto para manejar una base de datos de 10 registros como de 10 millones. Donde debe facilitarse la escalabilidad es en la base de datos.
Los checklists de seguridad son muy útiles, pero es importante saber lo que se está haciendo y para que. Este es un mundo grande y complicado, así que paciencia, mucho trabajo y ánimo :)
may. 08, 2007 - 02:11
Salu2
Añadir Nuevo Comentario