¿Por qué el usuario de MySQL debe tener privilegios?

-2

Por qué el usuario de mysql debería tener privilegios de base de datos mysql si es muy peligroso.
si mi código es vulnerable a la inyección SQL y el usuario tiene los privilegios el atacante puede cargar directamente su puerta trasera utilizando la función INTO OUTFILE , ¿cómo funcionan los privilegios de mysql?

    
pregunta Sec Researcher 09.10.2016 - 16:51
fuente

2 respuestas

0

Fundamentalmente, la mayoría del software en estos días va a tener una forma de conservar los datos.

Normalmente, la persistencia implica el uso de un sistema de base de datos como MySql.

La respuesta simple a tu pregunta es que no puedes evitarla. Pero puede hacer cosas para mitigar y debilitar los posibles impactos de un ataque.

En primer lugar, trata todas las entradas del usuario como hostiles. Desinfecte y limpie antes de usar. En segundo lugar, actuar sobre el principio de privilegio mínimo. Esto significa que si tiene una consulta de búsqueda que solo necesita seleccionar de una tabla de búsqueda indexada. Solo dé al usuario permisos de selección en esa tabla en particular. No le conceda todos los permisos en todas las tablas porque si se encuentra una vulnerabilidad de inyección ... Mapa de SQL tos . Luego, de repente, pueden hacer lo que quieran, rastrear todas sus tablas y extraer una gran cantidad de datos confidenciales.

    
respondido por el Nabster 09.10.2016 - 17:31
fuente
0

Incluso si tiene una falla de inyección de SQL en su código y los privilegios del usuario db permiten SELECT INTO (¿y qué le impide eliminar ese privilegio?) esto no significa que el usuario pueda cargar una puerta trasera. Para instalar con éxito una puerta trasera, el demonio mysqld necesitaría mucho más, como los privilegios de escritura en uno de los directorios que usa el servidor web para la ejecución de archivos php, por ejemplo. O 2 o más flujos adicionales como la inclusión de archivos locales. Si su servidor web está configurado correctamente, este no será el caso. Solo cargar un archivo no ayuda a un atacante si no puede ejecutarlo.
Pero en general, por supuesto, el usuario que se conecta a la base de datos para leer y actualizar datos debe tener permisos mínimos, al igual que todos los usuarios no deberían tener más permisos de los que necesitan para hacer su trabajo.
Por lo tanto, el resumen es que la inyección de SQL y el permiso para SELECT INTO solo no son suficientes para comprometer una caja. Por otro lado, los permisos mínimos para todos son siempre algo bueno.

    
respondido por el kaidentity 09.10.2016 - 18:10
fuente

Lea otras preguntas en las etiquetas