¿Cuáles son los peligros de crear bases de datos MySQL sobre la marcha?

5

Estoy construyendo un sitio donde las personas crean redes sociales pequeñas y privadas. Para facilitar la administración y la portabilidad, me gustaría que cada red se almacene en una base de datos MySQL diferente.

Entiendo que no hay un límite artificial en la cantidad de bases de datos que un servidor MySQL puede manejar, y en mis pruebas básicas no hay un impacto medible en el rendimiento. Lo que me gustaría saber es: si permito que estas bases de datos se configuren sin mi intervención, ¿cuáles son las implicaciones de seguridad?

Mis pensamientos hasta ahora:

  • Para uso general, la aplicación se conectaría a MySQL como un usuario con derechos limitados de "SELECCIONAR", "INSERTAR", "ACTUALIZAR", "BORRAR". A este usuario se le otorgarían derechos para leer / escribir en cada base de datos creada.

  • Cuando se crea una nueva red, la aplicación se conectará a MySQL como un usuario especial con el privilegio "CREAR", por lo que puede crear una nueva base de datos.

  • Solo permitiría crear una nueva base de datos si estoy convencido de que la persona es un usuario legítimo (validación de correo electrónico, captcha, etc.).

  • Si se crean bases de datos ilegítimas, las notaré y eliminaré, y con suerte descubriré cómo evitar que se creen más.

Con una configuración como esta, ¿hay alguna implicación de seguridad que no haya pensado? ¿Existe algún peligro, además de la posible creación de bases de datos por parte de usuarios ilegítimos?

    
pregunta Jason O'Neil 16.12.2013 - 10:40
fuente

1 respuesta

7

No hay problemas de seguridad inherentes con esta arquitectura. Cualquier riesgo provendrá de los errores de implementación o vulnerabilidades en MySQL.

Parece que está considerando este método para proporcionar separación entre los datos de diferentes redes, sin embargo, suena un poco excesivo. Sé que probaste el rendimiento, sin embargo, en gran escala esto podría usar más recursos, eso es un foro diferente.

Recuerde, todo se trata de la implementación, puede tener todos los datos de la red en una tabla y sería seguro siempre que lo diseñe y codifique bien.

    
respondido por el GdD 16.12.2013 - 11:30
fuente

Lea otras preguntas en las etiquetas