Este es un tema muy delicado que requiere ser reconocido dentro del desarrollo de aplicaciones de cualquier tipo, se trata de un tema de seguridad muy importante y complejo es importante que lo conozcas y tengas en cuenta durante el desarrollo y mantenimiento de algún sistema del tipo que fuera.
La inyección de código SQL es un problema debido a que por lo general los sistemas en alguna capa de su desarrollo necesitan de parámetros que deberán ser proporcionados por los usuarios finales para desplegar la información que estos necesitan, esta es una puerta abierta entre el los usuarios y el corazón del sistema.
La vulnerabilidad está en que en alguna de las capas del sistema todo desarrollador necesitara armar las instrucciones SQL necesarias para que el sistema responda a las necesidades del usuario esta parte es critica por que en el armado de las instrucciones puede haber sido enviada valores que no necesariamente sean los esperados por la aplicación.
En necesario crear rutinas de validación para verificar que los valores entrantes están entre los rangos o son del tipo esperado para evitar que de alguna manera sea posible corromper el funcionamiento de una aplicación.
Hablando de desarrollo web tenemos muchas formas útiles de prevenir estas situaciones, trataremos las más comunes a continuación.
Empezando desde la URL de las aplicaciones, en estos momentos es muy común el utilizar las llamadas URLs amigables para hacer más fácil y amigable la url para los visitantes y buscadores, Estas URLs necesitan ser validadas por expresiones regulares para determinar el inicio y fin de cada uno de los parámetros involucrados en la URL, son estas expresiones regulares las que nos serán de gran ayuda para realizar la primera limpieza de los parámetros y ahí eliminar todas las URLs que no cumplan con el tipo de dato esperado, es por eso que debemos aumentar a lo más posible las restricciones de las expresiones regulares y así evitar que se ingrese un valor no esperado en las URLs.
En el caso de los formularios los cuales son la principal herramienta de trabajo de las aplicaciones con la base de datos, es muy conveniente que realice una primera validación de los datos del lado del cliente utilizando javascript al igual podemos apoyarnos de expresiones regulares para evitar que sea introducidos datos incorrectos que puedan afectar a nuestra base de datos.
Una buena medida es la del envió por correo electrónico de los errores causados durante la ejecución, esta medida ayudara mucho a identificar en caso de que ocurra un problema, el motivo que lo origino, reparar y reconocer si existen otros lugares dentro de la aplicación que pudieran provocar un error similar.
En el lado del servidor es donde los datos involucrados se vuelven críticos y es ahí donde no debemos confiarnos de que la información pasada por el navegador del cliente es segura, por el contrario hay que tomar en cuenta que hasta ese momento se trataba de una parte no controlada al 100% por la aplicación, debemos tomar todas las medidas precautorias para garantizar que los datos pasados sean los esperados.
Es por eso que debes limpiar cada uno de los parámetros utilizados por la aplicación de posibles valores que sean perjudiciales y en caso de que el parámetro no sea del tipo esperado es importante devolver una excepción al nivel anterior.
Una regla es que siempre que un dato sea usado para interactuar con la base de datos en alguna instrucción SQL ese dato debe ser validado sin excepción alguna.
¿Has tenido una experiencia de este tipo?
No hay comentarios:
Publicar un comentario
Agradesco todos sus comentarios.