¿Es inseguro abrir una nueva conexión mysql para cada consulta?

2

Estoy haciendo algunas pruebas de unidad y noté que si hago clic (o hago que varias personas hagan clic) en el mismo filtro muy muy rápido (lo sé muy preciso;) finalmente obtengo un error "The connection is already open." . Sé que una forma de resolver esto es abrir nuevas conexiones individuales para cada consulta cada vez que se llama, pero me pregunto si hacerlo abre mi aplicación a un riesgo de seguridad. ¿Quizás sea un momento más fácil para un ataque DoS / DDos? >

Además, la conexión se cierra una vez completada.

Si esto es un riesgo, ¿cómo puedo (cómo los demás) resuelvo este problema?

    
pregunta Matthew Peters 18.09.2014 - 03:48
fuente

3 respuestas

2

Me parece que te estás encontrando con problemas de seguridad de subprocesos. La solución para esto, como ha descubierto, es no reutilizar las conexiones.

A su pregunta específicamente, no, no existe ningún riesgo de seguridad al abrir nuevas conexiones cada vez que necesite conectarse a la base de datos. No dice qué tecnología está utilizando (además de MySQL), pero normalmente si está siguiendo buenas prácticas de codificación, como devolver solo los datos que necesita y cerrar las conexiones tan pronto como haya terminado con ellas, no debería Puede haber un aumento significativo en el riesgo de ataques DoS que cuando reutiliza las conexiones, e incluso puede haber menos al eliminar los problemas de subprocesos que está viendo ahora. Además, si la tecnología del proveedor de datos que está utilizando ofrece una agrupación de conexiones, esto puede eliminar los impactos en el rendimiento de la creación de nuevas conexiones de base de datos casi en su totalidad, haciendo que el desempeño sea un problema.

Entonces, sí, deberías estar conectando una nueva conexión de base de datos cada vez que necesites acceder a la base de datos. Es la opción más segura que tienes.

    
respondido por el Xander 14.10.2014 - 21:44
fuente
0

Probablemente no deberías ejecutar consultas de base de datos para filtrar datos.

Según mi conocimiento, no hay riesgo de abrir más conexiones que no sea una pérdida de rendimiento. Sin embargo, parece que el problema se puede resolver con algunos mensajes asíncronos que pasan.

Si las personas pueden ejecutar un ataque DoS haciendo clic en un botón de filtro rápidamente, es probable que tenga problemas arquitectónicos más graves.

    
respondido por el zenware 14.10.2014 - 21:09
fuente
0

No, no es un riesgo de seguridad abrir varias conexiones simultáneas a MySQL o cualquier otra base de datos real (MS Access no es una base de datos real). Están hechas para trabajar así.

El riesgo que puede enfrentar es si alguien inicia más conexiones a la base de datos de las que puede manejar. En este caso, otros clientes no podrán ser atendidos a tiempo. Un DoS, efectivamente.

Puede resolver el problema utilizando grupos de conexiones para acceder a la base de datos y mitigar las múltiples conexiones con la misma fuente mediante el filtrado.

    
respondido por el ThoriumBR 14.10.2014 - 22:07
fuente

Lea otras preguntas en las etiquetas