viernes, 18 de junio de 2010

Consideraciones de seguridad

En el Proyecto UPPM Groupware se considero tratar de evitar una técnica de violación llamada Inyección SQL.

Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código "invasor" en la base de datos.

La inyección SQL es un problema de seguridad informática que debe ser tomado en cuenta por el programador para prevenirlo. Un programa hecho con descuido, displicencia, o con ignorancia sobre el problema, podrá ser vulnerable y la seguridad del sistema puede quedar ciertamente comprometida. Esto puede suceder tanto en programas ejecutándose en computadores de escritorio, como en paginas web, ya que éstas pueden funcionar mediante programas ejecutándose en el servidor que las aloja.

La vulnerabilidad puede ocurrir cuando un programa "arma" descuidadamente una sentencia SQL: con parámetros dados por el usuario, para luego hacer una consulta a una base de datos. Dentro de los parámetros dados por el usuario podría venir el código SQL inyectado.

Al ejecutarse esa consulta por la base de datos, el código SQL inyectado también se ejecutará y podría hacer un sinnúmero de cosas, como insertar registros, modificar o eliminar datos, autorizar accesos e, incluso, ejecutar código malicioso en el computador.

Asumiendo que el siguiente código está en una aplicación web y que existe un parámetro "nombreUsuario" que contiene el nombre de usuario que nosotros le demos, la inyección SQL es posible:

La inyección SQL consiste en la modificación del comportamiento de nuestras consultas mediante la introducción de parámetros no deseados en los campos a los que tiene acceso el usuario.

Este tipo de errores puede permitir a usuarios malintencionados acceder a datos a los que de otro modo no tendrían acceso y, en el peor de los casos, modificar el comportamiento de nuestras aplicaciones.

Para evitar este tipo de violación se consideró bloquear las comillas simples en los campos de texto con una función simple en Javascript

Referencia

http://www.maestrosdelweb.com/editorial/inyecsql/

http://es.wikipedia.org/wiki/Inyección_SQL

No hay comentarios:

Publicar un comentario