Descargar

SQL Injection


Partes: 1, 2

    1. Introducción ("Entrando en Clima")
    2. Desarrollo ("Poniéndonos a Punto")
    3. Conclusión ("Al Fin Llegamos a la Meta: ¿¡Lo Logramos!?")
    4. Enlaces de Interés (¡En Internet!)

    ¡La Pesadilla De Todo Programador y Diseñador Web!

    Y… El Interés De Toda "Mente Curiosa"

    "Cuando puedes medir aquello de lo que hablas, y expresarlo con números, sabes algo acerca de ello; pero cuando no lo puedes medir, cuando no lo puedes expresar con números, tu conocimiento es pobre e insatisfactorio: puede ser el principio del conocimiento, pero apenas has avanzado en tus pensamientos a la etapa de La Ciencia."

    No resulta complicado manipular estadísticas; a veces es mucho más sencillo de lo que parece. Ustedes se preguntarán, entonces… ¿Cuál es "el punto" que quiere abordar?

    Si un individuo posee dos piedras y otro no tiene ninguna, la estadística promedio afirmará que tienen una piedra cada uno. Sin embargo, y a pesar de los extraños resultados proveídos por las estadísticas a nivel de cuestiones particulares, deberíamos confiar en éstos (siempre y cuando estemos seguros de que no han sido manipulados). Por lo tanto, en el Mundo de las TICs (Tecnologías de la Información y Comunicaciones) sucede algo similar: podemos (llegar a) confiar en los resultados obtenidos por un computador u ordenador; en tanto y en cuanto los mismos no hayan sido "manoseados" por agentes externos a vuestro predominio y/o control. Pero… ¿Cómo saberlo a ciencia cierta?

    Podría describirse a un proceso informático como una transformación de datos para obtener información. Es decir, a través de un sofisticado (pero no por ello incomprensible) flujo y/o trayecto de los datos, éstos son ingresados al sistema con la intencionalidad de ser operados (computados) para devolver información acorde a los requisitos solicitados por el usuario del equipamiento. De esa manera, se consigue lo "práctico/útil" de lo exigido. Ahora… ¿Qué sucede cuando esos datos proporcionados al ordenador/computador son falsos o, peor aún, han sido manipulados con intencionalidad perversa?

    Pues, bien, las computadoras pueden incorporar métodos (técnicas/estrategias) para detectar la manipulación de datos con intención dañina y evitar resultados indeseables e impredecibles que terminan siendo infortunios en su trabajo. Por eso, implementar tales metodologías en su/s sistema/s puede ser una solución determinada por una variable que condiciona (indudablemente) al tiempo: La Actualización; basada en los pilares de la progresiva y contínua dinámica. Empero, por otra parte, esto puede causarnos una tediosa labor y/o migración en los sistemas actuales; resultando ser hechos peligrosos para el entorno de sus encargados y responsables a nivel administrativo-técnico. En definitiva, para ir adentrándonos en los conceptos fundamentales de tales criterios, es menester aclarar que aquí lo más relevante no será alcanzar el total aprendizaje de La Nota, sino lograr "captar" la potencial peligrosidad subyacente a una indebida o incorrecta programación y, por consiguiente, diseño Web Dinámico (administrado con el soporte de Bases de Datos) y asesorar a las personas delegadas/autorizadas en tales asuntos: ¡Conceder vuestro "granito de arena"!

    Introducción ("Entrando en Clima")

    ¿A quién no le agrada "un poco" de Historia? Mejor, resérvense las respuestas. Pero, no lo dejaremos pasar por alto…

    • SQL (El Comienzo):

    El Lenguaje de Consulta Estructurado (Structured Query Language), cariñosamente conocido (por nosotros) con la nomenclatura de SQL, es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas. Concentra características del álgebra y el cálculo relacional permitiendo lanzar consultas con el fin de recuperar información de interés de un "banco de registros", de una forma sencilla y poderosa. Forma parte de los lenguajes de Cuarta Generación (4GL).

    Pero, ¿cómo llegó a "nuestras manos"?

    Sus orígenes dan a conocer que en 1970, Codd, propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Apoyándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD (Sistema de Gestión de Base de Datos) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.

    El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero.

    El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es, por fin, estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es también adoptado por la ISO.

    Empero, este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado SQL-92 o SQL2.

    En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy extenso.

    Asimismo, el ANSI (Instituto Nacional Estadounidense de Estándares) SQL sufrió varias revisiones y agregados a lo largo del tiempo, por ejemplo, en una de sus últimas observaciones estudiadas, se permitió incluir: características del XML (Lenguaje de Marcas Extendidos), columnas autonuméricas, cambios y avances en ciertas funciones, etcétera.

    Hoy, a casi 30 años de su aparición, el "Pure SQL" ha demostrado que lejos de sus inicios como lenguaje "embebido", se ha convertido en una poderosa herramienta, capaz de manejar estructuras lógicas complejas, así como cualquier tipo de dato imaginado. De hecho, una versión en desarrollo denominada SQL3 comparte tantos atributos con los lenguajes de programación actuales que uno se puede animar a considerarlo como una versión de un verdadero (valga la redundancia) Lenguaje de Programación Standalone.

    Partes: 1, 2
    Página siguiente