Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/07/2010, 16:42
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seguridad Base de Datos

En primer lugar, tanto tu profesora, como tu, y eventualmente los que diseñan en Joomla o cualquier cosa se están olvidando es que MySQL no tiene un único usuario. Tiene o puede tener tantos usuarios como se creen en él, por lo que decir que es inseguro es por lo menos absurdo: MySQL es tan seguro como tú mismo lo manejes.
El problema es que muchas personas manejan con liviandad la administración de usuarios y permisos en MyQL, como si supusieran que se trata de algo superfluo. Eso sí es un error.
MySQL, tiene por default un sólo administrador (el root), pero es precisamente el root el que no debe usarse para acceder en páginas web. Es únicamente para administración de las bases.
Lo que corresponde es crear los usuarios que necesites para usar la web, pero con los permisos adecuados (restrictivos) para ello, pero no permisos amplios.
El problema, a nivel de hosting, es que los administradores del host no suelen ser muy generosos a la hora de darte usuarios, por lo que muchos de ellos gestionan los usuarios de la web internamente, accediendo con un único usuario general. Eso también es un error. Cada usuario, si lo quieres hacer más o menos bien, es conveniente que se certifique doblemente: Contra MySQL y contra la web...
Per esto implica mucha más programación, por lo que también influye el factor humano: La mayoría es demasiado ociosa para hacer algo de ese nivel... Y luego pagan con inseguridad.

Respecto a el sql-injection, eso se administra de otras formas, y no tiene relación específica u obligatoria con los permisos de los usuarios (al menso en cuanto a la creación de sentencias seguras). Se puede manejar programáticamente, o por medio de recursos de la base.
Eso depende de ti.

Sintetizando:
¿Cuál es el motivo de usar tablas propias para administrar usuarios?:

1) Falta de acceso a creación de usuarios. Los administradores de hosting no te dan muchos, y no suelen ddarte permisos para crearlos.

2) Ocio. Programar con certificación contra el DBMS es más complejo.

3) Desconocimiento. Muchos de los que usan estos recursos no están verdaderamente entrenados en seguridad informática, y menos en seguridad de bases de datos.

4) Estructuras predefinidas. Muchas aplicaciones que crean bases sobre modelos prefijados ya traen módulos simples de administración de usuarios. Serán ineficientes, pero están allí y no hay que hacer nada.

5) ...muchas otras razones.

Elige tu el orden y las razones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)