¿Está bien revelar los nombres de las tablas de la base de datos?

32

Estoy desarrollando una aplicación web que usa base de datos. Tengo que hacer algunas operaciones que necesitan nombres de tabla de base de datos y esquema de tabla db. ¿Será seguro si envío este tipo de información al lado del cliente (JavaScript a través de JSON) o debo mantener esa información en el lado del servidor de mi aplicación?

    
pregunta Krystian 06.05.2013 - 10:11
fuente

4 respuestas

52

Piénsalo de esta manera

  • Por un lado, no hay nada de malo en ello. Si su aplicación es lo suficientemente segura contra Inyección de SQL , un atacante no podrá hacer mucho con esa información. A menos que estés nombrando tus tablas table_2231 y tus columnas column_4231 (en cuyo caso te odio), no será difícil adivinar los nombres de tus tablas de todos modos. Si es un sitio web de noticias, es muy probable que tengas una tabla llamada articles , o si tienes algún servicio de suscripción, tendrás las tablas subscribers o users , y así sucesivamente. Además, si su servidor está comprometido, un atacante descubrirá los nombres de las tablas casi de inmediato.

  • Por otro lado, si hay una forma de evitarlo, no hay necesidad de revelarlo. Si cuidamos tu seguridad, una capa de oscuridad no se vería afectada en ese caso. De hecho, una capa de oscuridad por encima de las buenas medidas de seguridad suele ser algo bueno.

Sin embargo, me temo que estás tratando de hacer algo como esto

SELECT * FROM $UNTRUSTED_INPUT WHERE blah = 1

En ese caso, absolutamente no . No lo hagas.

    
respondido por el Adi 06.05.2013 - 10:29
fuente
16

La exposición de nombres de tablas puede tener consecuencias más amplias de lo que espera. Por ejemplo, podría poner a su empresa en desventaja legal al revelar nombres de tablas como deleted_messages , profile_views , single_female_users , etc. La retención de esos datos y la privacidad del usuario de repente se convierte en un tema de discusión y puede costar mucho. / p>

No siempre puedes controlar eso, por supuesto. Un hacker puede exponer los nombres de sus mesas también. Por lo tanto, la mejor práctica sería crear tablas como las que serán públicas mañana, pero abstenerse de revelar la información.

    
respondido por el Sedat Kapanoglu 06.05.2013 - 16:44
fuente
9

Más información que expones más vulnerable eres, sin importar su prioridad en tus políticas de seguridad.

    
respondido por el Paloma Perez 06.05.2013 - 17:15
fuente
2

Puedes segmentar tus tablas en sensibles y generales. Las tablas sensibles no deben ser "Expuestas" sino "Alias". Sin embargo, a largo plazo, su solución es tan segura como el valor que tiene para la persona interesada en ingresar.

    
respondido por el Justjyde 06.05.2013 - 21:49
fuente

Lea otras preguntas en las etiquetas