Home

viernes, 9 de enero de 2009

Firewalls y Seguridad en Internet para las redes corporativas.

Los administradores de red tienen que incrementar todo lo concerniente a la seguridad de sus sistemas, debido a que se expone la organización privada de sus datos así como la infraestructura de su red a los Expertos de Internet (Internet Crakers). Para superar estos temores y proveer el nivel de protección requerida, la organización necesita seguir una política de seguridad para prevenir el acceso no-autorizado de usuarios a los recursos propios de la red privada, y protegerse contra la exportación privada de información. Todavía, aun si una organización no esta conectada al Internet, esta debería establecer una política de seguridad interna para administrar el acceso de usuarios a porciones de red y proteger sensitivamente la información secreta.


Firewalls

Un Firewall en Internet es un sistema o grupo de sistemas que impone una política de seguridad entre la organización de red privada y el Internet. El firewall determina cual de los servicios de red pueden ser accesados dentro de esta por los que están fuera, es decir quien puede entrar para utilizar los recursos de red pertenecientes a la organización. Para que un firewall sea efectivo, todo tráfico de información a través del Internet deberá pasar a través del mismo donde podrá ser inspeccionada la información. El firewall podrá únicamente autorizar el paso del tráfico, y el mismo podrá ser inmune a la penetración. Desafortunadamente, este sistema no puede ofrecer protección alguna una vez que el agresor lo traspasa o permanece entorno a este.

Esto es importante, ya que debemos de notar que un firewall de Internet no es justamente un ruteador, un servidor de defensa, o una combinación de elementos que proveen seguridad para la red. El firewall es parte de una política de seguridad completa que crea un perímetro de defensa diseñada para proteger las fuentes de información. Esta política de seguridad podrá incluir publicaciones con las guías de ayuda donde se informe a los usuarios de sus responsabilidades, normas de acceso a la red, política de servicios en la red, política de autenticidad en acceso remoto o local a usuarios propios de la red, normas de dial-in y dial-out, reglas de encriptación de datos y discos, normas de protección de virus, y entrenamiento. Todos los puntos potenciales de ataque en la red podrán ser protegidos con el mismo nivel de seguridad. Un firewall de Internet sin una política de seguridad comprensiva es como poner una puerta de acero en una tienda.


Beneficios de un firewall en Internet


Los firewalls en Internet administran los accesos posibles del Internet a la red privada. Sin un firewall, cada uno de los servidores propios del sistema se exponen al ataque de otros servidores en el Internet. Esto significa que la seguridad en la red privada depende de la “Dureza” con que cada uno de los servidores cuenta y es únicamente seguro tanto como la seguridad en la fragilidad posible del sistema.


El firewall permite al administrador de la red definir un “choke point” (embudo), manteniendo al margen los usuarios no-autorizados (tal, como, hackers, crakers, vándalos, y espías) fuera de la red, prohibiendo potencialmente la entrada o salida al vulnerar los servicios de la red, y proporcionar la protección para varios tipos de ataques posibles. Uno de los beneficios clave de un firewall en Internet es que ayuda a simplificar los trabajos de administración, una vez que se consolida la seguridad en el sistema firewall, es mejor que distribuirla en cada uno de los servidores que integran nuestra red privada.


El firewall ofrece un punto donde la seguridad puede ser monitoreada y si aparece alguna actividad sospechosa, este generara una alarma ante la posibilidad de que ocurra un ataque, o suceda algún problema en el transito de los datos. Esto se podrá notar al acceder la organización al Internet, la pregunta general es “si” pero “cuando” ocurrirá el ataque. Esto es extremadamente importante para que el administrador audite y lleve una bitácora del trafico significativo a través del firewall. También, si el administrador de la red toma el tiempo para responder una alarma y examina regularmente los registros de base. Esto es innecesario para el firewall, desde que el administrador de red desconoce si ha sido exitosamente atacado!.

Con el paso de algunos años, el Internet ha experimentado una crisis en las direcciones, logrando que el direccionamiento IP sea menos generoso en los recursos que proporciona. Por este medio se organizan las compañías conectadas al Internet, debido a esto hoy no es posible obtener suficientes registros de direcciones IP para responder a la población de usuarios en demanda de los servicios. Un firewall es un lugar lógico para desplegar un Traductor de Direcciones de Red (NAT)[1] esto puede ayudar aliviando el espacio de direccionamiento acortando y eliminando lo necesario para re-enumerar cuando la organización cambie del Proveedor de Servicios de Internet (ISPs)[2] .


Un firewall de Internet es el punto perfecto para auditar o registrar el uso del Internet. Esto permite al administrador de red justificar el gasto que implica la coneccion al Internet, localizando con precisión los cuellos de botella potenciales del ancho de banda, y promueve el método de cargo a los departamentos dentro del modelo de finanzas de la organización.


Un firewall de Internet ofrece un punto de reunión para la organización. Si una de sus metas es proporcionar y entregar servicios información a consumidores, el firewall de Internet es ideal para desplegar servidores WWW y FTP.


Finalmente, el firewall puede presentar los problemas que genera un punto de falla simple. Enfatizando si este punto de falla se presenta en la conexión al Internet, aun así la red interna de la organización puede seguir operando - únicamente el acceso al Internet esta perdido - .


La preocupación principal del administrador de red, son los múltiples accesos al Internet, que se pueden registrar con un monitor y un firewall en cada punto de acceso que posee la organización hacia el Internet. Estos dos puntos de acceso significa dos puntos potenciales de ataque a la red interna que tendrán que ser monitoreados regularmente!


Limitaciones de un firewall


Un firewall no puede protegerse contra aquellos ataques que se efectúen fuera de su punto de operación.


Por ejemplo, si existe una coneccion dial-out sin restricciones que permita entrar a nuestra red protegida, el usuario puede hacer una coneccion SLIP o PPP al Internet. Los usuarios con sentido común suelen “irritarse” cuando se requiere una autenticación adicional requerida por un Firewall Proxy server (FPS)[3] lo cual se puede ser provocado por un sistema de seguridad circunvecino que esta incluido en una conexión directa SLIP o PPP del ISP.


Este tipo de conexiones derivan la seguridad provista por firewall construido cuidadosamente, creando una puerta de ataque. Los usuarios pueden estar consientes de que este tipo de conexiones no son permitidas como parte integral de la arquitectura de la seguridad en la organización.


El firewall no puede protegerse de las amenazas a que esta sometido por traidores o usuarios inconscientes. El firewall no puede prohibir que los traidores o espías corporativos copien datos sensitivos en disquettes o tarjetas PCMCIA y substraigan estas del edificio.


El firewall no puede proteger contra los ataques de la “Ingeniería Social”, por ejemplo un Hacker que pretende ser un supervisor o un nuevo empleado despistado, persuade al menos sofisticado de los usuarios a que le permita usar su contraseña al servidor del corporativo o que le permita el acceso “temporal” a la red.


Para controlar estas situaciones, los empleados deberían ser educados acerca de los varios tipos de ataque social que pueden suceder, y a cambiar sus contraseñas si es necesario periódicamente.


El firewall no puede protegerse contra los ataques posibles a la red interna por virus informativos a través de archivos y software. Obtenidos del Internet por sistemas operativos al momento de comprimir o descomprimir archivos binarios, el firewall de Internet no puede contar con un sistema preciso de SCAN[4] para cada tipo de virus que se puedan presentar en los archivos que pasan a través de el.


La solución real esta en que la organización debe ser consciente en instalar software anti-viral en cada despacho para protegerse de los virus que llegan por medio de fuentes externas.


Finalmente, el firewall de Internet no puede protegerse contra los ataques posibles en la transferencia de datos, estos ocurren cuando aparéntente datos inocuos son enviados o copiados a un servidor interno y son ejecutados despachando un ataque.


Por ejemplo, una transferencia de datos podría causar que un servidor modificara los archivos relacionados a la seguridad haciendo mas fácil el acceso de un intruso al sistema.


Como nosotros podemos ver, el desempeño de los servidores Proxy en un servidor de defensa es un excelente medio de prohibición a las conexiones directas por agentes externos y reduce las amenazas posibles por los ataques con transferencia de datos.


Herramientas del hacker


Es difícil describir el ataque “típico” de un hacker debido a que los intrusos poseen diferentes niveles técnicos por su experiencia y además son motivados por diversos factores. Algunos hackers son intrigosos por el desafío, otros mas gozan de hacer la vida difícil a los demás, y otros tantos substraen datos delicados para algún beneficio propio.


Recolección de información


Generalmente, el primer paso es saber en que forma se recolecta la información y además que tipo de información es. La meta es construir una base de datos que contenga la organización de la red y colectar la información acerca de los servidores residentes.


Esta es una lista de herramientas que un hacker puede usar para colectar esta información:


· El protocolo SNMP puede utilizarse para examinar la tabla de ruteo en un dispositivo inseguro, esto sirve para aprender los detalles mas íntimos acerca del objetivo de la topología de red perteneciente a una organización.

· El programa TraceRoute puede revelar el numero de redes intermedias y los ruteadores en torno al servidor especifico.

· El protocolo Whois que es un servicio de información que provee datos acerca de todos los dominios DNS y el administrador del sistema responsable para cada dominio. No obstante que esta información es anticuada.


· Servidores DNS pueden accesarce para obtener una lista de las direcciones IP y sus correspondientes Nombres (Programa Nslookup).


· El protocolo Finger puede revelar información detallada acerca de los usuarios (nombres de Login, números telefónicos, tiempo y ultima sesión, etc.) de un servidor en especifico.


· El programa Ping puede ser empleado para localizar un servidor particular y determinar si se puede alcanzar. Esta simple herramienta puede ser usada como un programa de escaneo pequeño que por medio de llamadas a la dirección de un servidor haga posible construir una lista de los servidores que actualmente son residentes en la red.


Sondeo del sistema para debilitar la seguridad

Después que se obtienen la información de red perteneciente a dicha organización, el hacker trata de probar cada uno de los servidores para debilitar la seguridad.


Estos son algunos usos de las herramientas que un hacker puede utilizar automáticamente para explorar individualmente los servidores residentes en una red:


· Una vez obtenida una lista no obstantemente pequeña de la vulnerabilidad de servicios en la red, un hacker bien instruido puede escribir un pequeño programa que intente conectarse a un puerto especificando el tipo de servicio que esta asignado al servidor en cuestión. La corrida del programa presenta una lista de los servidores que soportan servicio de Internet y están expuestos al ataque.


· Están disponibles varias herramientas del dominio publico, tal es el caso como el Rastreador de Seguridad en Internet (ISS)[5] o la Herramienta para Análisis de Seguridad para Auditar Redes (SATAN)[6] , el cual puede rastrear una subred o un dominio y ver las posibles fugas de seguridad. Estos programas determinan la debilidad de cada uno de los sistemas con respecto a varios puntos de vulnerabilidad comunes en un sistema. El intruso usa la información collectada por este tipo de rastreadores para intentar el acceso no-autorizado al sistema de la organización puesta en la mira.


Un administrador de redes hábil puede usar estas herramientas en su red privada para descubrir los puntos potenciales donde esta debilitada su seguridad y así determina que servidores necesitan ser remendados y actualizados en el sofware.


Acceso a sistemas protegidos

El intruso utiliza los resultados obtenidos a través de las pruebas para poder intentar accesar a los servicios específicos de un sistema.

Después de tener el acceso al sistema protegido, el hacker tiene disponibles las siguientes opciones:

· Pueden instalar paquetes de sondeo que incluyan códigos binarios conocidos como “caballos de Troya” protegiendo su actividad de forma transparente. Los paquetes de sondeo colectan las cuentas y contraseñas para los servicios de Telnet y FTP permitiendo al hacker expandir su ataque a otras maquinas.

Puede atentar destruyendo toda evidencia del asalto y además podrá crear nuevas fugas en el sistema o en partes subalternas con el compromiso de seguir teniendo acceso sin que el ataque original sea descubierto.

· Pueden encontrar otros servidores que realmente comprometan al sistema. Esto permite al hacker explotar vulnerablemente desde un servidor sencillo todos aquellos que se encuentren a través de la red corporativa.


· Si el hacker puede obtener acceso privilegiado en un sistema compartido, podrá leer el correo, buscar en archivos


Bases para el diseño decisivo del firewall


Cuando se diseña un firewall de Internet, se tiene que tomar algunas decisiones que pueden ser asignadas por el administrador de red:


* Posturas sobre la política del Firewall.


* La política interna propia de la organización para la seguridad total.


* El costo financiero del Proyecto “Firewall”.


* Los componentes o la construcción de secciones del Firewall.


Políticas del firewall.


Las posturas del sistema firewall describen la filosofía fundamental de la seguridad en la organización. Estas son dos posturas diametralmente opuestas que la política de un firewall de Internet puede tomar:


- “No todo lo específicamente permitido esta prohibido”


- “Ni todo lo específicamente prohibido esta permitido”


la primera postura asume que un firewall puede obstruir todo el trafico y cada uno de los servicios o aplicaciones deseadas necesariamente para ser implementadas básicamente caso por caso.


Esta propuesta es recomendada únicamente a un limitado numero de servicios soportados cuidadosamente seleccionados en un servidor. La desventaja es que el punto de vista de “seguridad” es mas importante que - facilitar el uso - de los servicios y estas limitantes numeran las opciones disponibles para los usuarios de la comunidad. Esta propuesta se basa en una filosofía conservadora donde se desconocen las causas acerca de los que tienen la habilidad para conocerlas.


La segunda postura asume que el firewall puede desplazar todo el trafico y que cada servicio potencialmente peligroso necesitara ser aislado básicamente caso por caso. Esta propuesta crea ambientes mas flexibles al disponer mas servicios para los usuarios de la comunidad. La desventaja de esta postura se basa en la importancia de “facilitar el uso” que la propia - seguridad - del sistema. También además, el administrador de la red esta en su lugar de incrementar la seguridad en el sistema conforme crece la red. Desigual a la primer propuesta, esta postura esta basada en la generalidad de conocer las causas acerca de los que no tienen la habilidad para conocerlas


Política interna de la seguridad


Tan discutidamente escuchada, un firewall de Internet no esta solo - es parte de la política de seguridad total en una organización -, la cual define todos los aspectos en competentes al perímetro de defensa. Para que esta sea exitosa, la organización debe de conocer que es lo se esta protegiendo. La política de seguridad se basara en una conducción cuidadosa analizando la seguridad, la asesoría en caso riesgo, y la situación del negocio. Si no se posee con la información detallada de la política a seguir, aun que sea un firewall cuidadosamente desarrollado y armado, estará exponiendo la red privada a un posible atentado.


Costo del firewall


¿Cuanto puede ofrecer una organización por su seguridad?, un simple paquete de filtrado firewall puede tener un costo mínimo ya que la organización necesita un ruteador conectado al Internet, y dicho paquete ya esta incluido como estándar del equipo. Un sistema comercial de firewall provee un incremento mas a la seguridad pero su costo puede ser de $3200,0 hasta $24000,0 pesos dependiendo de la complejidad y el numero de sistemas protegidos. Si la organización posee al experto en casa, un firewall casero puede ser construido con software de dominio publico pero este ahorro de recursos repercuten en términos del tiempo de desarrollo y el despliegue del sistema firewall. Finalmente requiere de soporte continuo para la administración, mantenimiento general, actualización de software, reparación de seguridad, e incidentes de manejo.


Componentes del sistema firewall


Después de las decisiones acerca de los ejemplos previos, la organización puede determinar específicamente los componentes del sistema. Un firewall típico se compone de uno, o una combinación, de los siguientes obstáculos.


- Ruteador Filtra-paquetes.


- Gateway a Nivel-aplicación.


- Gateway a Nivel-circuito.


por lo que resta del capitulo, se discutirá cada una de las opciones para la edificación de obstáculos y se describirá como se puede trabajar junto con ellos para construir un efectivo sistema firewall de Internet.


Edificando obstáculos: ruteador filtra-paquetes


Este ruteador toma las decisiones de rehusar/permitir el paso de cada uno de los paquetes que son recibidos. El ruteador examina cada datagrama para determinar si este corresponde a uno de sus paquetes filtrados y que a su vez haya sido aprobado por sus reglas. Las reglas de filtrado se basan en revisar la información que poseen los paquetes en su encabezado, lo que hace posible su desplazamiento en un proceso de IP. Esta información consiste en la dirección IP fuente, la dirección IP destino, el protocolo de encapsulado (TCP, UDP,ICMP, o IP tunnel), el puerto fuente TCP/UDP, el puerto destino TCP/UDP, el tipo de mensaje ICMP, la interface de entrada del paquete, y la interface de salida del paquete. Si se encuentra la correspondencia y las reglas permiten el paso del paquete, este será desplazado de acuerdo a la información a la tabla de ruteo, si se encuentra la correspondencia y las reglas niegan el paso, el paquete es descartado. Si estos no corresponden a las reglas, un parámetro configurable por incumplimiento determina descartar o desplazar el paquete.

Servicio dependiente del filtrado

Las reglas acerca del filtrado de paquetes a través de un ruteador para rehusar/permitir el trafico esta basado en un servicio en especifico, desde entonces muchos servicios vierten su información en numerosos puertos TCP/UDP conocidos.


Por ejemplo, un servidor Telnet esta a la espera para conexiones remotas en el puerto 23 TCP y un servidor SMTP espera las conexiones de entrada en el puerto 25 TCP. Para bloquear todas las entradas de conexión Telnet, el ruteador simplemente descarta todos los paquetes que contengan el valor del puerto destino TCP igual a 23. Para restringir las conexiones Telnet a un limitado numero de servidores internos, el ruteador podrá rehusar el paso a todos aquellos paquetes que contengan el puerto destino TCP igual a 23 y que no contengan la dirección destino IP de uno de los servidores permitidos.

Algunas características típicas de filtrado que un administrador de redes podría solicitar en un ruteador filtra-paquetes para perfecionar su funcionamiento serian:

- Permitir la entrada de sesiones Telnet únicamente a una lista especifica de servidores internos.

- Permitir la entrada de sesiones FTP únicamente a los servidores internos especificados.

- Permitir todas las salidas para sesiones Telnet.

- Permitir todas las salidas para sesiones FTP.

- Rehusar todo el trafico UDP.

Servicio independiente del filtrado

Este tipo de ataques ciertamente son difíciles de identificar usando la información básica de los encabezados debido a que estos son independientes al tipo de servicio. Los ruteadores pueden ser configurados para protegerse de este tipo de ataques pero son mas difíciles de especificar desde entonces las reglas para el filtrado requieren de información adicional que pueda ser estudiada y examinada por la tabla de ruteo, inspeccionando las opciones especificas IP, revisando fragmentos especiales de edición, etc. Algunos ejemplos de este tipo de ataques incluye:

Agresiones Originadas Por El Direccionamiento IP.

Para este tipo de ataque, el intruso trasmite paquetes desde afuera pretendiendo pasar como servidor interno

- los paquetes poseen una dirección fuente IP falsa de un servidor interno del sistema -. El agresor espera que usando este impostor se pueda penetrar al sistema para emplearlo seguramente como dirección fuente donde los paquetes que trasmita sean autentificados y los del otro servidor sean descartados dentro del sistema. Los ataques por seudo-fuentes pueden ser frustrados si descartamos la dirección fuente de cada paquete con una dirección fuente “interno” si el paquete arriva en una de las interfaces del ruteador “externo”.

Agresiones Originadas En El Ruteador.

En un ataque de ruteo, la estación de origen especifica la ruta que un paquete deberá de tomar cuando cruce a través del Internet. Este tipo de ataques son diseñados para cuantificar las derivaciones de seguridad y encauzan al paquete por un inesperado camino a su destino. Los ataques originados en el ruteador pueden ser frustrados simplemente descartando todos los paquetes que contengan fuentes de ruteo opcionales.

Agresiones Por Fragmentación.

Por este tipo de ataques, los intrusos utilizan las características de fragmentación para crear fragmentos extremadamente pequeños y obligan a la información del encabezado TCP a separarce en paquetes. Estos pequeños fragmentos son diseñados para evitar las reglas definidas por el filtrado de un ruteador examinando los primeros fragmentos y el resto pasa sin ser visto. Aunque si bien únicamente es explotado por sencillos decodificadores , una agresión pequeñisima puede ser frustrada si se descartan todos los paquetes donde el tipo de protocolo es TCP y la fragmentación de compensación IP es igual a 1.

Beneficios del ruteador filtra-paquetes

La mayoría de sistemas firewall son desplegados usando únicamente ruteadores filtra-paquetes. Otros que tienen tiempo planean los filtros y configuran el ruteador, sea este pequeño o no , el costoso para implementar la filtración de paquetes no es cara; desde que los componentes básicos de los ruteadores incluyen revisiones estándar de software para dicho efecto. Desde entonces el acceso a Internet es generalmente provisto a través de interfaces WAN, optimando la operación del ruteador moderando el trafico y definiendo menos filtros. Finalmente, el ruteador de filtrado es por lo general transparente a los usuarios finales y a las aplicaciones por lo que no se requiere de entrenamiento especializado o software especifico que tenga que ser instalado en cada uno de los servidores.

Limitaciones del ruteador filtra-paquetes

Definir el filtrado de paquetes puede ser una tarea compleja porque el administrador de redes necesita tener un detallado estudio de varios servicios de Internet, como los formatos del encabezado de los paquetes, y los valores específicos esperados a encontrase en cada campo. Si las necesidades de filtrado son muy complejas, se necesitara soporte adicional con lo cual el conjunto de reglas de filtrado puede empezar a complicar y alargar el sistema haciendo mas difícil su administración y comprensión. Finalmente, estas serán menos fáciles de verificar para las correcciones de las reglas de filtrado después de ser configuradas en el ruteador. Potencialmente se puede dejar una localidad abierta sin probar su vulnerabilidad.

Cualquier paquete que pasa directamente a través de un ruteador puede ser posiblemente usado como parte inicial un ataque dirigido de datos. Haciendo memoria este tipo de ataques ocurren cuando los datos aparentementes inocuos se desplazan por el ruteador a un servidor interno. Los datos contienen instrucciones ocultas que pueden causar que el servidor modifique su control de acceso y seguridad relacionando sus archivos facilitando al intruso el acceso al sistema.

Generalmente, los paquetes entorno al ruteador disminuyen conforme el numero de filtros utilizados se incrementa. Los ruteadores son optimizados para extraer la dirección destino IP de cada paquete, haciendo relativamente simple la consulta a la tabla de ruteo, y el desplazamiento de paquetes para la interface apropiada de la transmisión. Si esta autorizado el filtro, no únicamente podrá el ruteador tomar la decisión de desplazar cada paquete, pero también sucede aun aplicando todas las reglas de filtrado. Esto puede consumir ciclos de CPU e impactar el perfecto funcionamiento del sistema.

El filtrado de paquetes IP no puede ser capaz de proveer el suficiente control sobre el trafico. Un ruteador Filtra-Paquetes puede permitir o negar un servicio en particular, pero no es capaz de comprender el contexto/dato del servicio. Por ejemplo, un administrador de red necesita filtrar el trafico de una capa de aplicación - limitando el acceso a un subconjunto de comandos disponibles por FTP o Telnet, bloquear la importación de Mail o Newsgroups concerniente a tópicos específicos. Este tipo de control es muy perfeccionado a las capas altas por los servicios de un servidor Proxy y en Gateways a Nivel-aplicación.

Edificando obstáculos: gateways a nivel-aplicación

Los gateways nivel-aplicación permiten al administrador de red la implementación de una política de seguridad estricta que la que permite un ruteador filtra-paquetes. Mucho mejor que depender de una herramienta genérica de filtra-paquetes para administrar la circulación de los servicios de Internet a través del firewall, se instala en el gateway un código de proposito-especial (un servicio Proxy) para cada aplicación deseada. Si el administrador de red no instala el código Proxy para la aplicación particular, el servicio no es soportado y no podrán desplazarse a través del firewall.

Aun cuando, el código Proxy puede ser configurado para soportar únicamente las características especificas de una aplicación que el administrador de red considere aceptable mientras niega todas las otras.

Un aumento de seguridad de este tipo incrementa nuestros costos en términos del tipo de gateway seleccionado, los servicios de aplicaciones del Proxy, el tiempo y los conocimientos requeridos para configurar el gateway, y un decrecimiento en el nivel de los servicios que podrán obtener nuestros usuarios, dando como resultado un sistema carente de transparencia en el manejo de los usuarios en un ambiente “amigable”. Como en todos los casos el administrador de redes debe de balancear las necesidades propias en seguridad de la organización con la demanda de “fácil de usar” demandado por la comunidad de usuarios.

Es importante notar que los usuarios tienen acceso por un servidor Proxy, pero ellos jamas podrán seccionar en el Gateway a nivel-aplicación. Si se permite a los usuarios seccionar en el sistema de firewall, la seguridad es amenazada desde el momento en que un intruso puede potencialmente ejecutar muchas actividades que comprometen la efectividad del sistema.

Por ejemplo, el intruso podría obtener el acceso de root, instalar un caballo de troya para colectar las contraseñas, y modificar la configuración de los archivos de seguridad en el filrewall.

Servidor de defensa


Un ruteador filtra-paquetes permite la circulación directa de los paquetes dentro y fuera del sistema, diferente a esto el Gateway a nivel-aplicación deja que la información circule entre los sistemas pero no permite el intercambio directo de paquetes. El principal riesgo de permitir que los paquetes se intercambien dentro y fuera del sistema se debe a que el servidor residente en los sistemas de protección de la red podrá ser asegurado contra cualquier amenaza representada por los servicios permitidos.

Un Gateway a nivel-aplicación por lo regular es descrito como un “servidor de defensa” porque es un sistema diseñado específicamente blindado y protegido contra cualquier ataque. Hay varias características de diseño que son usadas para hacer mas seguro un servidor de defensa:

Þ La plataforma de Hardware del servidor de defensa ejecuta una versión “segura” de su sistema operativo. Por ejemplo, si el servidor de defensa es una plataforma UNIX, se ejecutara una versión segura del sistema operativo UNIX que es diseñado específicamente para proteger los sistemas operativos vulnerables y garantizar la integridad del firewall.

Þ Unicamente los servicios que el administrador de redes considera esenciales son instalados en el servidor de defensa. La lógica de operación es que si el servicio no esta instalado, este puede ser atacado. Generalmente, un conjunto limitado de aplicaciones Proxy tales como Telnet, DNS, FTP, SMTP, y autenticación de usuarios son instalados en este servidor.

Þ El servidor de defensa podrá requerir de una autenticación adicional para que el usuario accese a los servicios Proxy. Por ejemplo, el servidor de defensa es ideal para colocar un sistema fuerte de supervisión de autorización (tal como la tecnología “una-sola vez” de contraseña donde una tarjeta inteligente generaba un código de acceso único por medios criptográficos). Adicionalmente, cada servicio Proxy podrá requerir de autorización propia después que el usuario tenga acceso a su sesión.

Þ Cada Proxy es configurado para soportar únicamente un subconjunto de aplicaciones estándar de un conjunto de comandos. Si un comando estándar no es soportado por la aplicación Proxy, es porque simplemente no esta disponible para el usuario.

Þ Cada Proxy esta configurado para dejar acceder únicamente a los servidores especificados en el sistema. Esto significa que existe un conjunto de características/comandos que podrán ser aplicados para un subconjunto de sistemas en la red protegida.

Þ Cada Proxy mantiene la información detallada y auditada de todos los registros del trafico, cada conexión , y la duración de cada conexión. El registro de audición es un herramienta esencial para descubrir y finalizar el ataque de un intruso.

Þ Cada Proxy es un programa pequeño y sencillo específicamente diseñado para la seguridad de redes. Este permite que el código fuente de la aplicación pueda revisar y analizar posibles intrusos y fugas de seguridad. Por ejemplo, una típica aplicación - UNIX mail[7] - puede tener alrededor de 20,000 líneas de código cuando un correo Proxy puede contener menos de mil.

Þ Cada Proxy es independiente de todas las demás aplicaciones Proxy en el servidor de defensa. Si se sucitara un problema con la operación de cualquier Proxy, o si se descubriera un sistema vulnerable, este puede desinstalarse sin afectar la operación de las demás aplicaciones. Aun, si la población de usuarios requiere el soporte de un nuevo servicio, el administrador de redes puede fácilmente instalar el servicio Proxy requerido en el servidor de defensa.

Þ Un Proxy generalmente funciona sin acceso al disco lo único que hace es leer su archivo de configuración inicial . desde que la aplicación Proxy no ejecuta su acceso al disco para soporte, un intruso podrá encontrar mas dificultades para instalar caballos de Troya perjudiciales y otro tipo de archivos peligrosos en el servidor de defensa.

Þ Cada Proxy corre como un usuario no-previlegiado en un directorio privado y seguro del servidor de defensa.


Ejemplo: telnet proxy


La ilustra la operación de un Telnet Proxy en un servidor de defensa. Para este ejemplo, un cliente externo ejecuta una sesión Telnet hacia un servidor integrado dentro del sistema de seguridad por el Gateway a nivel-aplicación.

El Telnet Proxy nunca permite al usuario remoto que se registre o tenga acceso directo al servidor interno. El cliente externo ejecuta un telnet al servidor de defensa donde es autorizado por la tecnología “una-sola vez” de contraseña. Después de ser autentificado, el cliente obtiene acceso a la interface de usuario del Telnet Proxy. Este únicamente permite un subconjunto de comandos Telnet y además determina cual de los servidores son disponibles para el acceso vía Telnet.

Los usuarios externos especifican el servidor de destino y el Telnet Proxy una vez hecha la conexión, los comandos internos son desplazados hacia el cliente externo. El cliente externo cree que el Telnet Proxy es el servidor interno real, mientras el servidor interno cree que el Telnet proxy es un cliente externo.

La autenticación puede basarse en “algo conocido por los usuarios” (como una contraseña) o “algo que tengan” que posean físicamente (como una tarjeta electrónica) cualquiera de las dos. Ambas técnicas están sujetas a plagio, pero usando una combinación de ambos métodos se incrementa la probabilidad del uso correcto de la autenticación. En el ejemplo de Telnet, el Proxy transmite un requerimiento de registro y el usuario, con la ayuda de su tarjeta electrónica, obtendrá una respuesta de validación por un numero. Típicamente, se le entrega al usuario su tarjeta desactivada para que el introduzca un PIN[8] y se le regresa la tarjeta, basada en parte como llave “secreta” de encriptacion y con un reloj interno propio, una vez que se establece la sesión se obtiene un valor de respuesta encriptado.

Beneficios del gateway a nivel-aplicación


Son muchos los beneficios desplegados en un gateway a nivel-aplicación. Ellos dan a la administración de red un completo control de cada servicio desde aplicaciones proxy limitadas por un conjunto de comandos y la determinación del servidor interno donde se puede accesar a los servicios. Aun cuando, el administrador de la red tenga el completo control acerca de que servicios que son permitidos desde la carencia de un servicio proxy para uno en particular significa que el servicio esta completamente bloqueado. Los gateways a nivel-aplicación tienen la habilidad de soportar autenticaciones forzando al usuario para proveer información detallada de registro. Finalmente, las reglas de filtrado para un gateway de este tipo son mucho mas fáciles de configurar y probar que en un ruteador filtra-paquetes.

Limitaciones del gateway a nivel-aplicación


Probablemente una de las grandes limitaciones de un gateway a nivel-aplicación es que requiere de modificar la conducta del usuario o requiere de la instalación de software especializado en cada sistema que accese a los servicios Proxy. Por ejemplo, el acceso de Telnet vía gateway a nivel-aplicación demanda modificar la conducta del usuario desde el momento en que se requiere de dos pasos para hacer una conexión mejor que un paso. Como siempre, el software especializado podrá ser instalado en un sistema terminado para hacer las aplicaciones del gateway transparentes al permitir a los usuarios especificar el servidor de destino, mejor que el propio, en un comando de telnet.

Edificando obstáculos: gateway a nivel-circuito


Un Gateway a nivel-circuito es en si una función que puede ser perfeccionada en un Gateway a nivel-aplicación. A nivel-circuito simplemente trasmite las conexiones TCP sin cumplir cualquier proceso adicional en filtrado de paquetes.

Operación de una conexión típica Telnet a través de un Gateway a nivel-circuito. Tal como se menciono anteriormente, este gateway simplemente trasmite la conexión a través del firewall sin examinarlo adicionalmente, filtrarlo, o dirigiendo el protocolo de Telnet. El gateway a nivel-circuito acciona como una cable copiando los bytes antes y después entre la conexión interna y la conexión externa. De cualquier modo, la conexión del sistema externo actúa como si fuera originada por el sistema de firewall tratando de beneficiar el encubrir la información sobre la protección de la red.

El Gateway a nivel-circuito se usa frecuentemente para las conexiones de salida donde el administrador de sistemas somete a los usuarios internos. La ventaja preponderante es que el servidor de defensa puede ser configurado como un Gateway “híbrido” soportando nivel-aplicación o servicios Proxy para conexiones de venida y funciones de nivel-circuito para conexiones de ida.

Esto hace que el sistema de firewall sea fácil de usar para los usuarios internos quienes desean tener acceso directo a los servicios de Internet mientras se proveen las funciones del firewall necesarias para proteger la organización de los ataques externos.


Fuente: Daniel Ramón Elorreaga Madrigal - Universidad de México.


[1] Network Address Translator.

[2] Internet Service Providers.

[3] Servidor Apoderado del Firewall.

[4] System Control Antivirus Network.

[5] Internet Security Scanner .

[6] Security Analysis Tool for Auditing Networks.

[7] Correo Electrónico por UNIX.

[8] Post Identidy Number



[i] Ó1994 Cisco System, Inc. , Ó 1983 Novell, Inc.

jueves, 8 de enero de 2009

Bases de Datos en la WEB

La Web es un medio para localizar, enviar y recibir información de diversos tipos, utilizando para esto las bases de datos. En el ámbito competitivo, es esencial ver las ventajas que esta vía electrónica proporciona para presentar la información, reduciendo costos y el almacenamiento de la información, y aumentando la rapidez de difusión de la misma. 
Internet provee de un formato de presentación dinámico para ofrecer campañas y mejorar negocios, además de que permite acceder a cada sitio alrededor del mundo, con lo cual se incrementa el número de personas a las cuales llega la información.
   Alrededor de 14 millones de personas alrededor del mundo hacen uso de Internet, lo cual demuestra el enorme potencial que esta red ha alcanzado, con lo cual se puede decir que en un futuro no muy lejano, será el principal medio de comunicación utilizado para distintos fines.
   Pero, no sólo es una vía para hacer negocios, sino también una gran fuente de información, siendo éste uno de los principales propósitos con que fue creada.
   Una gran porción de dicha información requiere de un manejo especial, y puede ser provista por bases de datos.
   En el pasado, las bases de datos sólo podían utilizarse al interior de las instituciones o en redes locales, pero actualmente el Web permite acceder a bases de datos desde cualquier parte del mundo.    Estas ofrecen, a través de la red, un manejo dinámico y una gran flexibilidad de los datos, como ventajas que no podrían obtenerse a través de otro medio informativo.
   Con estos propósitos, los usuarios de Internet o Intranet pueden obtener un medio que puede adecuarse a sus necesidades de información, con un costo, inversión de tiempo, y recursos mínimos.  Asimismo, las bases de datos serán usadas para permitir el acceso y manejo de la variada información que se encuentra a lo largo de la red
   En esta publicación se presentan las diferentes herramientas que se utilizan hoy día para enviar y recibir información a través del web, así como las aplicaciones que hacen dicha interfaz, las base de datos con la World Wide Web.

SEGURIDAD

   La evaluación de este punto es uno de los más importantes en la interconexión de la Web con  la base de datos. A nivel de una red local, se puede permitir o impedir, a diferentes usuarios el acceso a cierta información, pero en la red mundial de Internet se necesita de controles más efectivos en este sentido, ante posible espionaje, copia de datos, manipulación de éstos, etc.

   La identificación del usuario es una de las formas de guardar la seguridad. Las identidades y permisos de usuarios están definidas en los Archivos de Control de Acceso. Pero la seguridad e integridad total de los datos puede conservarse, permitiendo el acceso a distintos campos de una  base de datos, solamente a usuarios autorizados para ello. En este sentido, los datos pueden ser presentados a través de la Web de una forma segura, y con mayor impacto en todos los usuarios de la red mundial. Para la integración de la base de datos con la Web es necesario contar con una interfaz que realice las conexiones, extraiga la información de la  base de datos, le dé un formato adecuado de tal manera que puede ser visualizada desde un browser de la Web, y permita lograr sesiones interactivas entre ambos, dejando que el usuario haga elecciones de la información que requiere.


BASE DE DATOS


 Orientación de las Base de Datos en la actualidad

En la actualidad, muchas instituciones se han dado cuenta de la importancia que el Web tiene en el desarrollo de sus potencialidades, ya que con ello pueden lograr una mejor comunicación con personas o instituciones situadas en cualquier lugar del mundo.
Gracias a la conexión con la red mundial Internet, poco a poco, cada individuo o institución va teniendo acceso a mayor cantidad de información de las diversas ramas de la ciencia con distintos formatos de almacenamiento.
La mayor parte de información es presentada de forma estática a través de documentos HTML, lo cual limita el acceso a los distintos tipos de almacenamiento en que ésta pueda encontrarse.
Pero, en la actualidad surge la posibilidad de utilizar aplicaciones que permitan acceder a información de forma dinámica, tal como a bases de datos, con contenidos y formatos muy diversos.
Las bases de datos están presentes en numerosas aplicaciones, sobre todo en aquellas que manejan grandes cantidades de información que deben ser almacenadas y manipuladas de forma rápida y eficiente.  Con la aparición de Internet y de la World Wide Web, muchas aplicaciones existentes y una gran mayoría de las de nueva aparición se están enfocando hacia su utilización en la red. Por ello surge la necesidad de aplicar esta nueva tecnología a las bases de datos de manera que puedan ser accedidas a través de Internet.
Una de las ventajas de utilizar el Web para este fin, es que no hay restricciones en el sistema operativo que se debe usar, permitiendo la conexión entre si, de las páginas Web desplegadas en un browser del Web que funciona en una plataforma, con servidores de bases de datos alojados en otra plataforma.  Además, no hay necesidad de cambiar el formato o estructura de la información dentro de las bases de datos. 

Tipos de bases de datos

 Las bases de datos se pueden dividir en cuatro tipos básicos:
     ¨       Bases de datos de fichero plano (o ficheros por bloques)
¨       Bases de datos relacionales
¨       Bases de datos orientadas a objetos
¨       Bases de datos híbridas
   Las bases de datos de fichero plano consisten en ficheros de texto divididos en filas y columnas. Estas bases de datos son las más primitivas y quizás ni tan siquiera merezcan considerarse como tales. Pueden ser útiles para aplicaciones muy simples, pero no para aplicaciones medianas o complejas, debido a sus grandes limitaciones.
Las bases de datos relacionales son las más populares actualmente.    Su nombre proviene de su gran ventaja sobre las bases de datos de fichero plano: la posibilidad de relacionar varias tablas de datos entre sí, compartiendo información y evitando la duplicidad y los problemas que ello conlleva (espacio de almacenamiento y redundancia).   Existen numerosas bases de datos relacionales para distintas plataformas (Access, Paradox, Oracle, Sybase) y son ampliamente utilizadas.    Sin embargo, tienen un punto débil: la mayoría de ellas no admite la incorporación de objetos multimedia tales como sonidos, imágenes o animaciones.
Las bases de datos orientadas a objetos incorporan el paradigma de la Orientación a Objetos (OO) a las bases de datos.  La base de datos está constituida por objetos, que pueden ser de muy diversos tipos, y sobre los cuales se encuentran definidas unas operaciones.    Las bases de datos orientadas a objetos pueden manejar información binaria (como objetos multimedia) de una forma eficiente.    Su limitación suele residir en su especialización, ya que suelen estar diseñadas para un tipo particular de objetos (por ejemplo, una base de datos para un programa de CAD).
Las bases de datos híbridas combinan características de las bases de datos relacionales y las bases de datos orientadas a objetos.   Manejan datos textuales y datos binarios, a los cuales se extienden las posibilidades de consulta. Es una tecnología reciente y aún existen pocas en el mercado. 

 BASE DE DATOS EN LA WEB 

      El interés de las bases de datos en la web crece día a día debido a sus numerosas aplicaciones, siendo cada vez mayor el número de herramientas específicas para bases de datos en la web que aparecen en el mercado. 
Existen dos formas de enfrentarnos a las bases de datos en la web.
1.-  Interfaces web que sirven como mediadores para llegar a la base de datos, para realizar consultas o modificaciones necesarias.
2.-  Bases de datos estructuradas que deben ser auto descritas para los datos y cuyo lenguaje estándar es el XML que estructura la base de datos. En este caso los datos se encuentran en la web.
 A continuación se detallan cada un de estas alternativas disponibles en la web.

1.-   INTERFACES  Web/DBMS

Si hemos navegado algo por la web, es casi seguro que hemos utilizado una base de datos en la web;  al buscar información sobre un tema, al consultar un catálogo de productos, al obtener el saldo de nuestra cuenta corriente o al firmar en un libro de visitas.  Todas estas aplicaciones utilizan bases de datos, bien para recoger información, bien para distribuirla o para ambas cosas a la vez.
   Tradicionalmente en el Web se han utilizado documentos HTML estáticos para los cuales se creaban las posibles respuestas ante requisiciones del cliente. Este método requiere de un gran desarrollo de aplicaciones y de mantenimiento de las mismas. Al interactuar con las bases de datos, este proceso se complica aún más.
   Una aplicación que posibilita interconectar al Web con una base de datos tiene muchas ventajas, además de que las funciones que cumplen actualmente los Servidores Web y las herramientas de desarrollo de aplicaciones Web, hacen más fácil que nunca la construcción de aplicaciones más robustas. Tal vez el mayor beneficio del desarrollo de estas aplicaciones en el Web sea la habilidad de que sean para múltiples plataformas, sin el costo de distribuir múltiples versiones del software.
   También han aparecido bibliotecas que incluyen motores propios de servidor que corren de forma conjunta con el Servidor Web, lo cual facilita el desarrollo de nuevas aplicaciones.
   Cada una de las interfaces para comunicar al Web con bases de datos, ha sido creada basándose en una tecnología de integración especial, a través de procesos de interconexión especiales, que serán descritos en el siguiente apartado.  
                Cuando se utiliza una interfaz para lograr la integración del Web con cierta base de datos, se puede verificar que los procesos seguidos varían, dependiendo de la tecnología que se esté utilizando. Entre estas tecnologías se tienen las siguientes.   

1.1  Funcionamiento de la Base de Datos

Para realizar una requisición de acceso desde el Web hasta una base de datos no sólo se necesita de un browser del Web y de un Servidor Web, sino también de un software de procesamiento (aplicación CGI), el cual es el programa que es llamado directamente desde un documento HTML en el cliente. 
Los CGI reciben datos transferidos desde un navegador Web mediante un servidor de HTTP y los convierten a un formato que la base de datos pueda entender. La información convertida se transfiere a la interfaz de la base de datos y esta la ejecuta. Los resultados se devuelven al software de procesamiento, el cual los convierte a un formato de manera que el navegador los pueda desplegar.
Una  aplicación CGI  no puede trabajar solo, requiere de un tipo de canal para hacer contacto con la base de datos, este canal lo proporciona la interfaz de la base de datos, el cual es un software especial que suministra el proveedor. Los CGI se comunican con la interfaz, la cual se pone en contacto con la base de datos. 

1.2   Lenguaje SQL

Como la necesidad de acceder a bases de datos desde el Web se ha incrementado, han sido creadas también interfaces que manipulan sus escritos para procesar la información, teniendo como punto común la ejecución de sentencias SQL para requerir datos a la base.
El lenguaje SQL, siglas que provienen de Structured Query Language (Lenguaje de Consulta Estructurado) es un lenguaje de bases de datos que pretende ser un lenguaje común para las bases de datos relacionales. La práctica totalidad de ellas es capaz de procesar consultas en SQL. SQL consta de dos partes: el DDL o Data Definition Language (Lenguaje de Definición de Datos) y el DML o Data Manipulation Language (Lenguaje de Manipulación de Datos). Algunas de las herramientas para el acceso a bases de datos en la web utilizan el lenguaje SQL para la consulta o modificación de los datos. Esto permite su uso con distintos sistemas gestores de bases de datos, siempre que estos sean capaces de procesar sentencias SQL. 

1.3   El Common Gateway Interface (CGI)

Los CGI son programas que se ejecutan en el servidor por petición del navegador de un usuario y permiten que se genere una página web de forma dinámica. Las páginas web puras (archivos HTML) son archivos de texto y por tanto estáticos. Sin embargo, si en lugar de pedir una página web el navegador ejecuta un programa, éste puede generar la página "al vuelo" y decidir en el momento como va a ser la página. Por ejemplo, imagine una página web que muestre la hora como texto. Está claro que no se puede poner la hora con el editor de páginas web, ya que cada vez que alguien vea la página la hora será distinta. La solución es crear un programa que se ejecute cada vez que alguien quiera ver la página. El programa genera la página web en el momento en que se ejecuta y así coloca la hora correcta. Por ello los CGI añaden dinamismo a las páginas web.
Actualmente, ésta es la solución que más se está utilizando para la creación de interfaces Web/DBMS. Fue probada por primera vez en el servidor NCSA. Se ha comprobado que si el Servidor Web recibe un URL con una “llave”, para devolver un documento HTML como respuesta, tendrá que cargar el servicio (programa) que le indique las variables de ambiente y de la forma HTML. La mayoría de las veces dicha “llave” es el "cgi-bin".
Los programas CGI son de doble sentido. Los datos pueden transferirse al programa CGI para su procesamiento, al igual los programas CGI pueden devolver información al servidor Web. Con esto la información introducida por el usuario puede afectar el comportamiento del programa CGI, y los resultados devueltos por el programa son resultado directo de lo que introduce el usuario. En algunos casos los programas CGI se ejecutan al cargar la página y los resultados se despliegan como parte de la misma.
Entre las ventajas de la programación CGI, se tiene su sencillez, ya que es muy fácil de entender, además de ser un lenguaje de programación independiente, ya que los escritos CGI pueden elaborarse en varios lenguajes.
También es un estándar para usarse en todos los servidores Web, y funcionar bajo una arquitectura independiente, ya que ha sido creado para trabajar con cualquier arquitectura de servidor Web.
Como la aplicación CGI se encuentra funcionando de forma independiente, no pone en peligro al servidor, en cuanto al cumplimiento de todas las tareas que éste se encuentre realizando, o al acceso del estado interno del mismo.
Pero el CGI presenta cierta desventaja en su eficiencia, debido a que el Servidor Web tiene que cargar el programa CGI y conectar y desconectar con la base de datos cada vez que se recibe una requisición. Además, no existe un registro de el estado del servidor, sino que todo hay que hacerlo manualmente.
El tener acceso a una base de datos a través de un programa CGI tiene una metodología propia, comúnmente el usuario hace clic sobre un botón predeterminado o sobre un vínculo, en este momento el navegador envía una solicitud de ejecutar el programa CGI al servidor Web, el servidor Web revisa la configuración y los archivos de acceso para asegurarse que se cuenta con el permiso de ejecución del programa CGI y se asegura de que este exista , cualquier resultado producido por el programa CGI se devuelve al navegador Web que despliega el resultado. 

Los programas CGI como interfaces para acceder a bases de datos.

      La Web posee mecanismos para que el usuario ingrese datos en una página (por ejemplo el número de tarjeta de crédito), estos son recibidos por el servidor, que inmediatamente los pasa a un programa preparado para intercambiar datos según las normas de interfaz CGI. Este programa, puede estar escrito en cualquier lenguaje (incluso puede ser compilado o interpretado), pero la única forma de interactuar con el usuario es a través de la página web. Por esta razón la interacción no es inmediata (como sí ocurre en Java); por ejemplo si un usuario ingresa un dato erróneo, el mensaje de error será una nueva página generada después de que el usuario envíe todos los datos requeridos en el formulario.

Recuperación de información de una bases de datos

Cuando alguien usa un navegador Web para acceder a una base de datos hay varios componentes que intervienen para transferir la consulta del usuario a la base de datos y devolver los resultados al navegador, la acción se desarrolla de la siguiente manera:
-      El usuario llama a un programa gateway que utiliza CGI, haciendo clic en un hipervínculo u oprimiendo un botón del formulario.
-      El navegador reúne toda la información escrita por el usuario para enviarla al programa CGI.
-      El navegador contacta al servidor de HTTP en la máquina donde reside el programa CGI, pidiéndole que localice a este último y le transfiere la información.
-      El servidor de HTTP corrobora si la máquina solicitante tiene autorización de acceso al programa CGI.
-      Si el usuario tiene acceso, el servidor de HTTP localiza el programa Gateway y transfiere a este la información del navegador Web.
-      Se ejecuta el programa Gateway.
-      El proceso Gateway convierte la información recibida a un formato que la base de datos sea capaz de entender.
-      El Gateway usa el módulo de la base de datos para transferir la consulta a la interfaz de la base.
-      La interfaz de la base de datos analiza la sintaxis de la consulta para asegurar que sea precisa.
-      Si la interfaz encuentra un error de sintaxis en la consulta, se envía un mensaje de error al programa Gateway.
-      El mensaje de error se envía al servidor de HTTP, el cual lo transfiere al navegador Web para que este lo despliegue al usuario.
-      Si no hay error, la interfaz envía la consulta a la bases de datos.
-      La base de datos atiende la consulta y devuelve los resultados al programa gateway a través de la interfaz.
-      El programa gateway formatea los resultados y los envía al servidor, por medio del CGI, para su envío al navegador Web.
-      El navegador Web despliega los resultados
Hacer inserciones, actualizaciones y eliminaciones requiere de un procedimiento más complejo que el necesario para hacer simples consultas. El código de inserción debe verificar si existen los datos en la base de datos, con el fin de evitar duplicidad en la información, el código de actualización debe asegurarse que la información exista, antes de modificarla, en caso contrario debe originarse un error. Las acciones de eliminación y edición debe de asignarse a un grupo reducido y confiable para evitar la eliminación de datos necesarios.
Para procesar algo mas que una simple consulta en un ambiente de esta naturaleza, es necesario algún tipo de control de acceso como lo pueden ser el comparar el identificador de conexión del usuario contra una lista de usuarios autorizados para determinada acción, asignar a cada tipo usuario un identificador de conexión y asignar a cada tipo nivel un nivel de acceso basándose en las funciones que tienen permitidas o utilizar la autenticación de clave de acceso de la base de datos destino para validar los niveles de acceso a los usuarios. En definitiva, el método que utilice depende de como planee utilizar el programa de gateway (CGI).
La siguiente ilustración muestra cómo intercambian información un explorador, un servidor y una aplicación CGI utilizando CGI. 
En principio los CGI se pueden realizar con cualquier lenguaje de programación, ya que pueden ser ejecutables (archivos .exe). Sin embargo, lo más recomendable es utilizar un lenguaje de script con facilidades para realizar CGI. Nos referimos al Perl.

¿Qué es el lenguaje Perl?

   Es un lenguaje de ordenadores interpretado. Su nombre significa "perla" y se supone que es el acrónimo de Practical Extraction and Report Language (lenguaje práctico para extracción e informes). Al ser interpretado, los programas se denominan scripts y son archivos de texto. El Perl es el lenguaje más usado para programar CGI's porque al ser interpretado es más 'portable', y porque sus características lo hacen ideal para ello.
La ventaja del Perl es que por su forma y por las bibliotecas y utilidades de que dispone, es ideal para la realización de CGI's. Es más, a ello debe el enorme auge que ha tenido últimamente, aunque en un principio fue diseñado como lenguaje de propósito general.

1.4  Páginas ASP

Introducción al ASP
ASP(Active Server Pages)  o lenguaje de páginas activas de Microsoft estaría englobado dentro de los lenguajes ISS (Include Server Side) de 2ª generación, es decir, que ASP es una evolución de los CGI’s (Common Gateway Interface).
ASP no define un lenguaje de programación con sus sentencias de control, sus estructuras de almacenamiento, etc, sino que define una serie de objetos de servidor, los cuales tienen una serie de métodos que podremos utilizar para cosas como acceso a base de datos, lectura de ficheros, etc.
ASP se ayuda de dos lenguajes de script, como son JavaScript y VBScript para implementar toda la parafernalia necesaria para que se vea ASP como un lenguaje de programación.
Es por ello que la primera línea de código de una página ASP deberá de indicar el lenguaje de script con el que nos vamos a ayudar.

Concepto de página ASP

Las páginas ASP se caracterizan por tener en un mismo archivo de extensión ASP código de script que se ejecuta en el servidor y código HTML que forma la página web. Es decir, en un mismo archivo se encuentra el HTML (apariencia de las páginas) y el código de la aplicación a ejecutar en el servidor.
Todo el sistema ASP no es más que una DLL del tipo ISAPI, que es invocada automáticamente para los archivos cuya extensión sea .asp. La biblioteca ASP preprocesa el archivo ASP interpretando su código como un script a ejecutar en el servidor. Sin embargo ella no interpreta directamente el código, sino que en función del lenguaje en el que está escrito, invoca a otra DLL que se encarga de ejecutar el script. Después recoge la salida y se la envía al servidor web.
A algunos programadores esto les puede parecer confuso y poco estructurado. De hecho, parece preocupante que un webmaster diseñador gráfico y un programador de aplicaciones de bases de datos tengan que trabajar ambos sobre el mismo archivo.
Sin embargo, esto es sólo una apariencia. Una reflexión más profunda nos revela que la página ASP engloba tanto a las páginas web como a los scripts CGI. En efecto, una ASP puede consistir sólo en código HTML (y entonces es lo mismo que una página web normal) o sólo en código ejecutable (lo mismo que un CGI). Por tanto la mezcla de código y HTML es opcional, pero muy utilizada por resultar práctica (por ejemplo, un formulario que se llama a sí mismo).

Concepto de aplicación ASP

Una página ASP no es sólo un script. Se denomina aplicación ASP al conjunto de páginas ASP, páginas web, archivos gráficos, etcétera, dispuestos en un directorio y sus subdirectorios. Todo este conjunto de scripts y datos es el equivalente en la web a la aplicación tradicional que al final se compila en un ejecutable. 

Como funciona realmente ASP

El esquema de funcionamiento de ASP sería como el de la figura que tenemos a continuación. Una maquina cliente realiza una petición de una página ASP. Esta petición llega a una maquina servidor la cual interpreta el código de esa página ASP. Dicho código puede tener accesos a ficheros o bases de datos (Base de Información).           
El resultado de interpretar la página ASP es una página HTML, la cual se le envía al usuario. Es decir, el usuario no llega a ver el código ASP, sino que ve el resultado de interpretar dicho código: una página HTML.
En conclusión podríamos decir que una aplicación en ASP tiene como objetivo diseñar una página web. Todas las salidas de información que se realicen en una páginas ASP serán de código HTML o texto.

¿Qué ventajas y desventajas tiene el ASP respecto a los CGI?

Entre las ventajas podemos destacar:
-      Se puede elegir el lenguaje de programación de entre estos tres: JavaScript, Visual Basic Script y PerlScript. Incluso se pueden tener scripts en distintos lenguajes dentro de la misma página ASP. El lenguaje escogido vale con cualquier navegador, ya que se trata de código que se ejecuta en el servidor. Al navegador sólo le llega HTML.
-      Se pueden utilizar componentes del lado de servidor. Esto permite programar al estilo VisualBasic creando objetos y utilizando sus métodos y propiedades.
-      Se puede acceder a bases de datos con objetos recordset de un modo muy parecido a como se hace en Visual Basic.
-      Tiene persistencia de variables en memoria (entre distintas visualizaciones de páginas web) que se pueden asociar a cada sesión de usuario o a la aplicación en su conjunto. Esto resuelve de forma elegante uno de los mayores problemas de la programación en la web: el servidor web no tiene memoria entre la visualización de una página web y la siguiente. 
En cuanto a las desventajas, no tiene ninguna. Los partidarios del Perl pueden seguir utilizando dicho lenguaje al 100% (incluyendo bibliotecas) y aprovechar las nuevas características del ASP, sin más que utilizar como lenguaje de programación el PerlScript.

1.5  Interfaz de Programación de Aplicaciones (API)

Es un conjunto de rutinas, protocolos y herramientas para construir aplicaciones de interfaz.   Una buena API hace más fácil el trabajo de desarrollo de un programa, ya que debe proveer todos los bloques para construirlo. El programador lo único que hace es poner todos los bloques juntos.
API está diseñado especialmente para los programadores, ya que garantiza que todos los programas que utilizan API, tendrán interfaces similares. Asimismo, esto le facilita al usuario aprender la lógica de nuevos programas.
Cuando se realiza una requisición, el servidor llamará al API, brindando la ventaja de disponer de una mayor cantidad de servicios. 

1.6  Interfaz de Programación de Aplicaciones del Servidor Internet (ISAPI)

   Es la interfaz propuesta por Microsoft como una alternativa más rápida que el CGI, y ya está incluida en el Servidor Microsoft Internet Information (IIS).
Así como los escritos CGI, los programas escritos usando ISAPI habilitan un usuario remoto para ejecutar un programa, busca información dentro de una base de datos, o intercambia información con otro software localizado en el servidor. 
Los programas escritos usando la interfaz ISAPI son compilados como bibliotecas de enlace dinámico (DLL - Dynamic Link Library), ya que son cargados por el servidor Web cuando éste se inicia. Dichos programas se vuelven residentes en memoria, por lo que se ejecutan mucho más rápido que las aplicaciones CGI, debido a que requieren menos tiempo de uso de CPU al no iniciar procesos separados.
Uno de los programas ISAPI más usados es el HTTPODBC.DLL que se usa para enviar y/o devolver información hacia y desde las bases de datos, a través de ODBC.
Además, ISAPI permite realizar un procesamiento previo de la solicitud y uno posterior de la respuesta, con lo cual manipula la solicitud/respuesta HTTP.   Los filtros ISAPI pueden utilizarse para aplicaciones tales como autenticación, acceso o apertura de sesión. 

1.7   Java, JDBC y JavaScript

Java ofrece un ambiente de programación muy sencillo, robusto, dinámico, de propósito general, orientado a objetos y múltiples plataformas, creado por Sun MicroSystems.
Es tanto un compilador como un lenguaje intérprete. El código fuente de Java es convertido en instrucciones binarias simples, y compilado con un formato universal.
El Compilador realiza todas las actividades de un procesador real en un ambiente virtual más seguro.    Es decir, ejecuta instrucciones, crea y manipula información, carga y hace referencia a bloques de código nuevos.
El Intérprete, que es pequeño y muy útil, es capaz de ser implantado en cualquier forma que se desee para un sistema operativo particular.  Este puede correr como una aplicación independiente, o como una parte de otro software, tal como el Web Browser.   El concepto de Java es diferente al de CGI, ya que el CGI se ejecuta en el servidor, mientras que Java se ejecuta en el cliente. 

Procesamiento Cliente/Servidor

Por lo general, las aplicaciones Web son procesadas completamente en el lado del servidor, lo cual no es precisamente lo más apropiado, ya que significa un uso excesivo de memoria, manteniendo al usuario en la espera mientras termina de ejecutarse. Pero los browser Java (del lado del usuario) pueden ejecutar aplicaciones, y no sólo desplegar documentos HTML, poniendo a correr el proceso en el lugar apropiado.
Las aplicaciones clásicas proveen de información acerca de los tipos de formato (tipos MIME). Los browser del Web rápidos serán capaces de aprender cómo tratar con nuevos protocolos y dar formato dinámicamente a los datos.

Conectividad de Bases de Datos de Java (JDBC)

Se considera el primer producto estándar de Java con DBMS, creado y ofrecido por primera vez en marzo de 1996.
Crea una interfaz con un nivel de programación que le permite comunicarse con las bases de datos mediante un concepto similar al de componentes ODBC, el cual se ha convertido en el estándar que se utiliza en computadoras personales o en redes locales.
El estándar de JDBC está basado en un nivel de interfaz con instrucciones SQL X/Open, que es básicamente lo mismo que en ODBC. Las clases de objetos para iniciar la transacción con la base de datos, están escritas completamente en Java, lo cual permite mantener la seguridad, robustez y portabilidad de este ambiente.
El puente JDBC-ODBC manipula la traducción de llamadas JDBC a aquellas que puedan ser entendidas por el cliente ODBC a un nivel de lenguaje C. 

JavaScript

Es un API programable que permite crear escritos de eventos, objetos y acciones, bajo cualquier plataforma, que se alojan dentro de un documento HTML. Dicho lenguaje es propiedad de Netscape.
Gracias a que JavaScript es parte de la conexión en vivo, se puede usar para crear interacciones entre documentos HTML, Plug-ins (aplicaciones que corren dentro del browser del Web) y Java.
 Mediante el uso de JavaScript se pueden enviar respuestas ante una variedad de eventos, objetos y acciones, permitiendo cambiar imágenes o activar sonidos ante determinados eventos, tales como entrar o salir de una página, presionar el ratón, etc.
 Para la interconexión de una base de datos con el Web, se pueden construir escritos CGI en lenguajes de programación adecuados, tales como C o Perl.   Estos escritos se mantendrán cargados en memoria a la espera de requisiciones o llamadas del servidor, y realizando las conexiones con la base de datos.
Algo un poco más complejo es crear un servidor personal, tal como APACHE, y agregarle los servicios que se consideren necesarios, a través de módulos.   Para ello, se puede obtener el código fuente de los servidores ya existentes y que se encuentren disponibles en Internet, tal como el anteriormente mencionado, luego compilarlo y modificarlo según conveniencias

 1.8  Formularios  WEB

Los formularios son plantillas que permiten la creación de documentos HTML con peticiones de datos.  Es decir, dentro de una página Web se puede solicitar información al visitante y procesarla. En un formulario se puede solicitar diferentes campos, cada uno de los cuales quedará asociado a una variable. Una vez se hayan introducido los valores en los campos, el contenido de estos será enviado a la dirección URL donde se tiene el programa que pueda procesar las variables.  
Para poder realizar este último paso es necesario realizar un programa externo en algún lenguaje de programación como PERL, C++ o Visual Basic. Este programa externo se llama CGI. 

 1.9  Aplicaciones de una Base de Datos en la Web 
Aplicaciones más importantes

-          Entre las aplicaciones más importantes de una base de datos en la web se pueden citar las siguientes:  
-          Comercio electrónico
-          Servicios al cliente (p. ej. seguimiento de paquetes postales)
-          Servicios financieros
-          Búsqueda de información
-          Acceso remoto a bases de datos
-          Bases de datos compartidas (intranets)
-          Creación de documentos HTML personalizados (sobre la marcha)
-          Distribución de multimedia
-          Seguimiento de visitantes

 Componentes de una aplicación de bases de datos

Una base de datos en la web consta de los siguientes componentes:
-          Servidor web
-          Servidor de aplicación
-          Cliente web
-          Programa CGI (opcional)
-          Base de Datos

1.10   Publicación de bases de datos en la web

Las consideraciones a tener en cuenta a la hora de desarrollar una aplicación de bases de datos en la web no son en principio distintas de las necesarias para cualquier otra aplicación (alcance del proyecto, experiencia del programador, etc.).  Por otra parte, a la hora de publicar una base de datos en la web se pueden adoptar varios enfoques, según el grado de complejidad de la aplicación.  De esta manera, las herramientas para la publicación de una base de datos en la web se pueden clasificar en tres categorías:
-          Herramientas para la publicación de datos.
-          Herramientas para el desarrollo de bases de datos.
-          Herramientas específicas para el desarrollo de bases de datos web.
Veamos cada una de ellas con detalle.

Herramientas para la publicación de datos

Estas herramientas resultan interesantes cuando la base de datos es pequeña o su contenido no cambia muy frecuentemente. Entre ellas podemos citar las siguientes:
-          Bases de datos de ficheros por bloques
-          Fusión de datos con plantillas HTML (mail-merge)
-          Asistentes para publicación de datos en la web (Access: HTML estático)
Las bases de datos de ficheros por bloques ya han sido comentadas antes. Tienen severas limitaciones, pero si la cantidad de datos no es muy grande pueden ser aceptables. Su gran ventaja es que puede construirse un programa CGI para acceder a la base de datos utilizando cualquier lenguaje que proporcione acceso a ficheros de texto.  Por ejemplo el lenguaje C,   cuya portabilidad permite desarrollar la aplicación para distintas plataformas,  como un PC y una máquina UNIX. Como opción interesante la base de datos puede crearse exportando en modo texto una base de datos relacional,  lo cual simplifica el mantenimiento de los datos.  Cada vez que se produzca una modificación de los datos se generará una nueva versión de la base de datos de fichero por bloques lista para su uso.
         Otra posibilidad es fusionar una plantilla HTML preexistente con datos exportados de una base de datos.  La plantilla proporciona el formato del documento e incluye unos campos que se rellenan con los datos de la base de datos.   El documento final se crea mediante la opción de fusión (mail merge) de un procesador de textos.   El proceso paso a paso es el siguiente:
-          Crear la base de datos con un gestor de bases de datos relacional
-          Exportar los datos en un formato válido para el procesador de textos
-          Crear la plantilla con el procesador de textos
-          Hacer el mail merge de la plantilla con los datos exportados
-           Transferir el resultado a una página web, mediante un asistente o cortando y pegando
Este proceso habrá que repetirlo cada vez que se modifique la base de datos,  por lo cual esta opción será interesante cuando los datos sufran pocas modificaciones. Tiene la ventaja de su gran simplicidad, por lo que puede ser una opción aceptable en casos concretos.


Herramientas para el desarrollo de bases de datos.
Para tener una aplicación de bases de datos potente en la red hay que recurrir a la programación CGI.  Aunque están surgiendo herramientas específicas de bases de datos en la web, y en el futuro acabarán por imponerse, las aplicaciones actuales de bases de datos en la web utilizan la programación CGI.
En esta aplicaciones podemos distinguir dos componentes fundamentales:
-          Formulario  HTML
-          Programa  CGI
El formulario HTML permite introducir en la página web los datos para iniciar la consulta, y el programa CGI se encarga de recibir esos datos, interpretarlos, realizar la consulta a la base de datos  y genera una página web con el resultado de la consulta.        
                Un aspecto importante es la elección del lenguaje de programación para el programa CGI.  
Esta elección está condicionada por los mismos factores que influyen en  cualquier otro proyecto:
-          Disponibilidad de herramientas
-          Tipo y número de las bases de datos
-          Plataformas en las que debe funcionar la aplicación
-          Experiencia del programador
-          Alcance del proyecto
El acceso a la base de datos desde el programa CGI se puede hacer de varias formas:
-          Consultas SQL: es el procedimiento más común.
-          ODBC/JDBC: API de programación proporcionada por los gestores de bases de         datos.
-          Procedimientos almacenados: son instrucciones de bases de datos específicas de un Gestor de Bases de Datos concreto. Proporcionan rapidez, pero limitan la aplicación al uso de dicho gestor.
Una alternativa a la creación de nuestros propios programas CGI es el uso de herramientas que generan automáticamente estos programas. Entre estas herramientas podemos citar los asistentes avanzados para publicación de datos en la web que ofrece Microsoft Access.   Estos asistentes proporcionan dos métodos para la publicación de bases de datos en la web, como son el HTX/IDX dinámico (basado en el uso de plantillas) y el ASP dinámico.
En el método HTX/IDC dinámico los ficheros .HTX contienen código HTML no estándar.   Estos archivos tienen un archivo .ITX asociado que contiene un mandato SQL que recupera los datos de la base de datos y los muestra con el formato indicado en el archivo de plantilla HTX.
El método ASP dinámico permite obtener páginas más vistosas, ya que trabaja con controles ActiveX integrados.   Estos controles se comunican directamente con el servidor web, puenteando al HTML.   El problema es que estos controles sólo son visibles si se utiliza el navegador web de Microsoft, el Internet Explorer, lo cual limita el uso de este método.
Ambos métodos requieren la presencia de un servidor web de Microsoft, como el Servidor Personal de Web en Windows 95 o el Internet Information Server (IIS) en Windows NT.

1.11   Herramientas específicas para el desarrollo de bases de  datos web

Recientemente están surgiendo herramientas diseñadas expresamente para el desarrollo de bases de datos web. Estas herramientas permiten generar consultas de cierta complejidad a bases de datos grandes sin necesidad de realizar tareas de programación, o restringiendo esta tarea a su mínima expresión.   Es por ello que se están haciendo muy populares, y aún lo serán más en el futuro.
Una herramienta de desarrollo de bases de datos web debe tener cinco funciones:
-          Estructuración de los datos y tablas
-          Creación del formulario HTML
-          Creación de los programas CGI
-          Generación automática de un documento de respuesta
-          Mantenimiento de los datos 
Es posible que la herramienta que tengamos no haga todas estas operaciones, en cuyo caso deberemos complementarla con otras herramientas o hacerlo manualmente.
          Estas herramientas suelen disponer de unas extensiones al lenguaje HTML mediante las cuales se realiza la consulta a la base de datos y se formatea la salida de los resultados obtenidos en dicha consulta.
          Criterios para la elección de un método de publicación de datos en la web
En los puntos anteriores se han visto diferentes métodos para la publicación de datos en la web.   Cada uno tiene sus ventajas y sus inconvenientes, que habrá que sopesar antes de elegir cuál de ellos es el que mejor se adapta a nuestra aplicación particular.   En concreto, habrá que tener en cuenta los siguientes factores:
-          Plataforma
-          Servicios ofrecidos por el proveedor de acceso a Internet
-          Nivel de conocimientos de programación
-          Tamaño de la base de datos
-          Costo
Una vez desarrollada la aplicación, ésta debe ser mantenida, lo cual también debe tenerse en consideración.

1.12   Base de Datos Web con tecnología Microsoft

 El sistema de acceso a bases datos a través de la web utilizando la tecnología Microsoft, se denomina ADO (ActiveX Data Objects).    
DSN (Data Source Name): Es un identificador único de la base de datos en el sistema.  Al definir un DSN se especifican tanto la ruta completa del archivo de base de datos como el controlador adecuado a la misma (MSAccess, FoxPro, etc).    Una vez creado, es todo lo que se necesita saber acerca de la base de datos para poder abrirla, consultarla, modificarla, etc.
ADO (ActiveX Data Objects): Es una familia de objetos componentes dedicados a facilitar el acceso a bases de datos. 
Todo el sistema ADO se basa en una serie de objetos cuyas propiedades y métodos hay que utilizar.   Estos objetos están registrados en el sistema, sin embargo no están predefinidos. Es decir, hay que crearlos utilizando Server.CreateObject que representa una conexión a una base de datos.    Este es el primer objeto que se debe crear para poder conectar con la base de datos.   

1.13 Internet Information Server (IIS)

Con el servicio WWW y los controladores ODBC que proporciona Internet Information Server, puede: 
  1. Crear páginas Web con información contenida en bases de datos.
  2. Insertar, actualizar y eliminar información de la Base de datos según la entrada del usuario en una página Web.
  3. Ejecutar otros comandos del Lenguaje de consulta estructurado (SQL).
  4. Funcionamiento del Conector de bases de datos de Internet (IDC)
     En el siguiente diagrama se muestra conceptualmente el acceso a bases de datos desde Internet Information Server.
Los exploradores de Web (como Internet Explorer o los exploradores de otros fabricantes como Netscape) remiten peticiones al servidor Internet usando HTTP. El servidor Internet responde con un documento en formato HTML. El acceso a las bases de datos se realiza mediante un componente de Internet Information Server llamado Conector de bases de datos de Internet (IDC). El Conector de bases de datos de Internet, Httpodbc.dll, es un programa DLL/ISAPI  que utiliza ODBC para el acceso a las bases de datos. 
1)    Web.sql

Sybase web.sql es una herramienta para Internet e Intranets con una nueva tecnología que facilita el acceso a bases de datos relacionales desde el World Wide Web, así como también la creación dinámica de documentos personalizados en formato HTML. La herramienta está diseñada para soportar codificación interlineal y llamadas a otros escritos, puesto que se conecta directamente con un servidor Web. El resultado es un mejor rendimiento en el acceso a la base de datos y en el tiempo de respuesta. Además, web.sql integra la tecnología Open Client de Sybase, lo cual permite que los datos de cualquier fuente sean incorporados dinámicamente en las páginas Web.
Con web.sql se extienden las funciones de un servidor Web posibilitando la inserción de instrucciones de bases de datos, tales como sentencias SQL, así como también código de escritos Perl, dentro de un documento en formato HTML.   Cuando un cliente browser hace una requisición a estos documentos, web.sql ejecuta los escritos e interpola los resultados dentro del respectivo archivo para devolverlos al Web browser.
¿Cómo Funciona Web.sql?
En la arquitectura típica de un servidor Web, el Web browser hace una requisición de documentos en dicho servidor especificando un URL.
El servidor HTTP interpreta este URL en una ruta para un archivo específico que se encuentra en la máquina servidora que es anfitriona. Si el archivo contiene las extensiones .html, .gif, .jpeg o de cualquier otro tipo que el servidor Web reconozca, el servidor HTTP devuelve el archivo requerido directamente al browser.
En cambio, si el archivo requerido es un programa que reside en un directorio autorizado, el servidor HTTP ejecuta dicho programa de acuerdo al CGI y envía los resultados del programa al Web browser. 
    Sin embargo, cuando un cliente browser hace una requisición del URL, que es interpretado como un archivo con extensión .hts o .pl, el servidor HTTP pasa la requisición al programa web.sql.  Éste lee el archivo especificado, luego procesa las requisiciones a la base de datos y del código Perl contenidas en el archivo. Finalmente compone los resultados en formato HTML para que el servidor HTTP los pase al browser. 

2)    West Wind Web Connection

West Wind Web Connection es una interfaz creada por West Wind Technologies.  Este producto permite conectar aplicaciones creadas con lenguaje de programación FoxPro con el Web, en tiempo real, aprovechando con ello la funcionalidad y el poder de acceso a datos desde el Web, que provee el lenguaje de programación FoxPro.  
West Wind Web Connection se constituye de dos grandes piezas de software:
Una pequeña aplicación en lenguaje de programación C++, que funciona como conector que es en sí la interfaz de comunicación entre el Servidor Web y la aplicación creada en lenguaje Visual FoxPro.  Un amplio Sistema de Clases Visual FoxPro, que hacen más fácil la tarea de construir aplicaciones para el Web.  El sistema creado con el lenguaje Visual FoxPro se constituye de clases que:
-          Manejan la comunicación con el conector.
-          Dirigen el manejo y la administración del servidor.
-          Manejan los resultados y las variables de formas HTML enviadas por el servidor.
-          Facilitan la manipulación del código.
-          Proveen un poderoso conjunto de clases y herramientas de soporte HTML, que simplifican el trabajo a realizar para desplegar las aplicaciones y datos en el Web.
Web Connection soporta y trabaja de forma efectiva con el Servidor Internet API (ISAPI), que es un mecanismo muy eficiente de procesar solicitudes en el mismo servidor Web, reduciendo grandemente el uso de recursos en el mismo.
La interfaz es fácil de usar, ya que fue diseñada pensando en facilitar su manejo. La instalación del software es semi-automática, y la interfaz se puede hacer funcionar muy rápidamente para conectar el servidor Web con aplicaciones FoxPro. Todas las piezas del sistema son implantadas de una forma muy clara, lo que hace que el proceso de respuesta a las requisiciones del Servidor Web sea fácil y muy flexible.  
El lenguaje de programación Visual FoxPro brinda grandes ventajas para manipular el acceso a los datos, el procesamiento lógico y el despliegue HTML, por medio del uso de código FoxPro dentro de archivos HTML que pueden crearse a través de editores de texto o de HTML como FrontPage. 

3)   WebDBC

WebDBC es una herramienta para desarrollo de aplicaciones de Base de Datos en el Web, es decir, permite agregar la funcionalidad de diversas bases de datos a un sitio Web.
WebDBC otorga facilidad al momento de elaborar una aplicación que integre el Web con una base de datos, ya que obtiene provecho de dos tecnologías: la sintaxis propia de HTML y los manejadores (drivers) ODBC existentes. Con ambos elementos se pueden incrustar comandos en una página Web que consulten o modifiquen una base de datos; para lo cual se hacen necesarios los archivos de resultado.  
Los archivos de resultado son páginas Web constituidas por etiquetas HTML y comandos WebDBC.   Con estos últimos WebDBC actúa como precompilador, pues los interpreta para luego enviar sus resultados en formato HTML al browser; de tal manera que éste recibe una página Web construida dinámicamente.   Estos archivos de resultado poseen extensión .HTX y  en general, son la respuesta dinámica que un usuario obtiene después de haber especificado ciertos criterios en un formulario previo.
WebDBC usa el interfaz ODBC para acceder a diversas bases de datos, con lo cual se tiene la ventaja de establecer conexión con cualquier base de datos para la cual exista manejador ODBC de 32 bit, es decir: Microsoft SQL Server, Microsoft Access, Oracle, Sybase, Paradox, FoxPro, etc.
WebDBC se puede ejecutar como DLL(ISAPI o NSAPI), aplicación CGI o Servicio NT. El proceso de ejecución que WebDBC realiza da inicio cuando recibe requisiciones de clientes Web (como Browser o aplicaciones Java), las cuales son transformadas en sentencias SQL para luego enviarlas a la base de datos a través de ODBC. 

4)   Cold Fusion

   Cold Fusion es una interfaz creada por Allaire para acceder a bases de datos desde el Web.    Es una potente herramienta para realizar las funciones de acceso a la información alojada en bases de datos, utilización de programación personalizada, y presentación de la información utilizando formatos muy avanzados.
Mediante el uso de esta herramienta, se puede distribuir información a nivel de Internet y/o de intranets, ya que permite conectar una base de datos al interior de una red (Intranet) o a nivel de redes más amplias en el Web (Internet).
   La conexión con la base de datos es realizada haciendo uso mínimo de programación, generando posteriormente las páginas Web de manera dinámica, cuyo contenido será la información que está alojada en la base de datos. Así mismo, permite introducir nueva información dentro de una base de datos, tener acceso a datos actualizados periódicamente, automatizando toda la actividad relacionada con dicha base de datos.
Cold Fusion hace uso de formas HTML estándar con validación de datos de los campos, para realizar la inserción y actualización de registros dentro de una tabla en una base de datos. Para la entrada de datos se especificará el tipo de dato a introducir en un campo específico. Este tipo de datos puede ser de valor entero, flotante, de fecha o en un rango especial de fechas. Además, se puede registrar la hora de introducción del valor de un campo, la dirección IP (Protocolo Internet) desde la que se hace una solicitud, el nombre del cliente y el tipo de browser que éste utiliza para acceder los datos, todo ello sin necesidad de escribir una línea de código.

5)   DbCGI

DbCGI es una interfaz CGI entre bases de datos SQL y el World Wide Web, desarrollada por CorVu Pty Ltd (Australia). Esta interfaz puede interactuar con diversos sistemas abiertos de bases de datos SQL, como Informix, Ingres, ODBC, Oracle, Progress y Sybase, a través del Web.
La herramienta dbCGI posibilita crear dinámicamente documentos personalizados en formato HTML, tales como formularios, tablas y reportes complejos.  Además, dbCGI está diseñado para soportar codificación interlineal de sentencias SQL para interactuar con las bases de datos.
            Cuando un cliente browser hace una requisición de URL, que es interpretado como un archivo dbCGI, el servidor HTTP pasa la requisición al programa dbCGI.   Este lee el archivo especificado, luego procesa las requisiciones a la base de datos contenidas en dicho archivo. Finalmente compone los resultados en formato HTML para que el servidor HTTP los remita al cliente browser.
Cuando un cliente browser hace una requisición de URL, que es interpretado como un archivo dbCGI, el servidor HTTP pasa la requisición al programa dbCGI. Éste lee el archivo especificado, luego procesa las requisiciones a la base de datos contenidas en dicho archivo. Finalmente compone los resultados en formato HTML para que el servidor HTTP los remita al cliente browser. 

6)   IsisWWW

     IsisWWW es una interfaz para publicar Bases de datos Micro CDS/ISIS en el World Wide Web, desarrollada por el grupo CDS/ISIS de la Universidad de Estudios Bibliotecarios y de Información, de Stuttgart (Alemania).
Con IsisWWW es posible desarrollar una interfaz cliente/servidor completamente gráfica, a través de formularios HTML, para interactuar con Bases de datos ISIS en Internet e Intranets.
Además, dicha herramienta posibilita el uso del lenguaje de especificaciones de formato ISIS en combinación del formato estándar HTML para desplegar los resultados en páginas Web creadas dinámicamente.
A continuación, se explica el funcionamiento de la interfaz IsisWWW dentro de la arquitectura típica de un servidor Web con el CGI.
En la figura, el programa CGI isfrag.pl contiene toda la información que envía el cliente browser al servidor Web. Dicho programa convierte la información a una estrategia de consulta ISIS, escribiéndola en un archivo y luego ejecuta el programa CDS/ISIS.
Nótese que IsisWWW no opera directamente con los archivos de la Base de datos ISIS, sino a través del programa Micro CDS/ISIS.

7)  dbWeb

Microsoft dbWeb es una herramienta de software que funciona como interfaz entre una fuente de datos ODBC (Microsoft Open Database Connectivity) y el Servidor Web. Es una aplicación CGI (Common Gateway Interface) de alta funcionalidad implementada como un servicio de 32-bits de Windows NT multitarea.
dbWeb ofrece una forma especial de publicar en el World Wide Web (WWW) o en una red intranet, aquella información extraída de una base de datos; esto se hará a través de una fuente de datos ODBC, y puede realizarse sin la necesidad de contar con un software adicional al del browser Web en el equipo cliente, ya sea en computadoras con Windows, Macintosh o Unix.
Con dbWeb se logra obtener un acceso a diferentes bases de datos, a través de Servidores Web HTTP corriendo bajo plataformas Microsoft Windows NT. Así, éste paquete provee de las capacidades de Insertar/Actualizar/Borrar los datos de los registros que sean elegidos a través de sentencias SQL. Dichos datos son desplegados en una forma tabular, detallada o personalizada, y de manera opcional pueden contener enlaces en hipertexto que permitan navegar a través de la información.
Al hacer uso de dbWeb pueden crearse “Esquemas”, los cuales contendrán la especificaciones necesarias para acceder a los datos y para crear las páginas HTML. Por lo tanto, dbWeb provee de páginas Web completamente funcionales con el propósito de extraer y desplegar la información. Cualquier visitante a un sitio en el que se encuentre funcionando dbWeb, puede hacer uso de un estilo muy familiar de navegación a través de hipertexto, al utilizar browsers del Web y sentencias muy fáciles que le permitirán buscar la información que desee.

8)   Extensiones ODBC para Perl WIN32 

   Perl es el lenguaje más ampliamente usado en la programación CGI en el World Wide Web, ya que ofrece una serie de ventajas que lo hacen ideal para construir interfaces entre el Web y otras aplicaciones.
            Algunas de las ventajas que Perl ofrece son:               
-          Portabilidad de código en diversas plataformas.
-          Existencia de operadores extremadamente robustos para manipular cadenas de caracteres, así como funciones para tratar con datos binarios.
-          Métodos simples para la construcción y manipulación de objetos definidos por el usuario.
-          Ejecución de programas en base a interpretación.
-          Facilidad para invocar comandos y funciones shell del sistema operativo.
-          Habilidad para acceder variables de entorno.
-          Existencia de numerosas extensiones o módulos para interactuar con otro tipo de programas, como bases de datos.
   A partir de estas y otras ventajas que Perl ofrece, así como también de la existencia de extensiones para ODBC de 32 bit, es posible construir aplicaciones que permitan acceder diversas bases de datos a través del Web.
Las extensiones ODBC deben ser llamadas desde un escrito Perl que pueda comportarse como aplicación CGI. Tales extensiones permiten que desde un escrito Perl se pueda establecer comunicación con una base de datos a través de ODBC; lo cual implica que los criterios que un usuario ha especificado en un formulario se procesen y se conviertan en sentencias SQL, para que el ODBC las intérprete y sean enviadas a la base de datos, con el objetivo de obtener los resultados esperados de la misma.

9)     Internet Database Connector (IDC)

       Originalmente fue diseñado para programadores familiarizados con SQL y con poca experiencia con el lenguaje HTML. IDC ofrece un mecanismo directo de alto rendimiento para la integración del contenido de una base de datos dentro de una página Web
                El IDC utiliza dos tipos de archivos para controlar la forma de acceso a la Base de datos , el modo en que se construye la página Web de salida y además contienen el nombre y la ubicación del archivo de extensión HTML. Dichos archivos son archivos del Conector de bases de datos de Internet (.idc) que contiene la información de la consulta y archivos de extensión HTML estándar(.htx) con una sintaxis especial para hacer referencia a los resultados de una consulta. Cada vez que un usuario hace una requisición a un archivo IDC, la consulta asociada con él se ejecuta como un programa DLL/ISAPI, y se comunica a base de datos SQL a través de ODBC. El archivo de extensión HTML constituye la plantilla para el documento HTML real que se devolverá al explorador de Web cuando el IDC haya combinado su información con la Base de datos.
Puesto que IDC utiliza el lenguaje de consultas SQL, el modelo de programación es familiar a todos los programadores de bases de datos y es significativamente fácil de implantar. Un beneficio adicional de usar consultas SQL estándar es que es tan sencillo insertar información en una base de datos así como lo es recuperarla. Más aún, un programador puede elegir usar procedimientos almacenados, incrementando significativamente la eficiencia de la programación y ejecución.
Conceptualmente, el acceso a las bases de datos es realizado por el Internet Information Server. Los cliente browser envían las requisiciones al servidor Web a través de HTTP. El servidor Web responde con un documento en formato HTML. El acceso a una base de datos es realizado por el componente IDC del Internet Information Server.

10)   FoxWeb
 
   Es una herramienta de software que permite a los servidores Web tener acceso a la información alojada en bases de datos o programas FoxPro.
    FoxWeb es una aplicación que habilita la administración de bases de datos en un sitio Web utilizando el lenguaje de programación Visual FoxPro y un acceso a dichas bases de datos, de tal modo que se creen aplicaciones que funcionen a través de Internet.   Esta interfaz de programación fue diseñada con el propósito de no preocuparse más por las complejidades de la programación CGI, teniendo siempre el control necesario para crear aplicaciones robustas.
La interfaz de programación FoxWeb provee de la utilización de funciones que hacen más fácil la lectura de datos de entrada y la creación dinámica de resultados HTML, los cuales son enviados de nuevo al browser del usuario.
    El procesamiento de programas dentro de un servidor Web inicia con una requisición a través de un URL.   El servidor se encarga a continuación de localizar el archivo correspondiente e interpretar el tipo o el contenido del mismo.   Si en este momento el servidor detecta que el archivo es un programa especial, lo ejecuta de acuerdo al procesamiento CGI, enviando a continuación los resultados hacia el browser.
En el momento en que un browser Web realiza la requisición a través de un URL, el servidor HTTP interpreta que el programa requerido posee extensión .prg, por lo tanto pasa dicho URL al programa FoxWeb, el cual lee el programa y especialmente el procedimiento que ha sido invocado a través del mismo URL.   Luego, FoxWeb se encarga de llamar al programa de usuario que realizará las solicitudes a la base de datos, y, a continuación de procesar las funciones que han sido invocadas desde el código, tanto del programa .prg como del bloque que contiene sentencias HTML. 
Finalmente integra los resultados en un formato HTML puro y se los pasa al servidor Web para que éste los envíe al browser.

11)   La Interfaz WWW MINISIS

La Interfaz WWW para MINISIS es un producto adicional al software estándar de MINISIS, desarrollado por el IDRC (Canadá), que permite un acceso a bases de datos MINISIS a través del Web. Dicha interfaz posibilita la creación dinámica de páginas Web con la incrustación de etiquetas HTML dese los registros de bases de datos MINISIS. 
Con la Interfaz WWW el despliegue de los registros resultantes es similar a configurar una especificación de reporte y de registros de una base de datos MINISIS. Actualmente, la interfaz WWW solamente está disponible para la plataforma Windows NT. Sin embargo, se han iniciado trabajos de desarrollo para portar el software a la plataforma Unix. 

12)   IQuery

IQuery es un motor de búsquedas interactivo para bases de datos Micro CDS/ISIS.   Fue desarrollado de acuerdo a las especificaciones de ISIS 3.0 y ha sido diseñado para ejecutarse en tres modalidades: como una línea de comandos interactiva, como un programa CGI en servidores Web y como un intérprete que obtiene las instrucciones de un archivo. IQuery funciona en las plataformas Linux, SCO y DOS.
Con esta interfaz es posible incrustar dentro de un formulario HTML código de comandos reconocidos por IQuery para interactuar con la base de datos ISIS, de tal forma que dichos comandos son transferidos con el CGI al programa IQuery a través del servidor Web.    Además, IQuery no trabaja con el formato de despliegue de resultados que utiliza el programa Micro CDS/ISIS, puesto que IQuery es un software orientado a clientes Web que poseen su propio lenguaje de formato HTML.
                Cuando se inicia IQuery, lo primero que hace es buscar el archivo de parámetros SYSPAR.PAR en el directorio predeterminado de instalación de ISIS o bien, la ruta de directorio que se puede especificar al programa con el parámetro ‘-conf ’. En el archivo SYSPAR.PAR se busca la ruta de directorio donde residen los archivos de las bases de datos. Luego, IQuery cambia a una de las tres modalidades que se haya especificado: línea de comandos, HTML (parámetro -html) o intérprete de archivo (parámetro -file). En cualquier caso IQuery lee y procesa una línea a la vez desplegando los resultados en salida estándar.
Adicionalmente, el motor de búsquedas posee dos parámetros especiales, los cuales son:
 ‘-nocase’ y ‘-nostrict’. El primero permite buscar palabras claves sensitivas a las letras mayúsculas y minúsculas; el segundo toma en cuenta los espacios en blanco al principio y al final de la palabra clave a buscar.

 13)   WWWIsis

   WWWIsis es una herramienta que ha sido diseñada para funcionar como un servidor de bases de datos ISIS en un ambiente cliente/servidor y para operar a través del CGI en el World Wide Web, desarrollada y distribuida por BIREME (Brasil).
WWWIsis es parte del conjunto de utilidades CISIS, desarrolladas también por BIREME, para manejar y administrar bases de datos ISIS. Esta compatibilidad hace que estén disponibles los lenguajes de búsqueda y de formato de Micro CDS/ISIS para poder sacar el mayor provecho a la herramienta WWWIsis.    Su desarrollo se basa en las principales funciones de dichas utilidades CISIS, especialmente MX para la recuperación y edición de registros y MZ para la consulta al fichero invertido, lo cual facilita su uso.
Con WWWIsis es posible desarrollar una interfaz cliente/servidor completamente gráfica para interactuar con bases de datos ISIS en ambos ambientes Internet e Intranet.
WWWIsis está diseñado para ser ejecutado como una línea de comando en escritos CGI. Su funcionamiento está dirigido por un conjunto de parámetros que pueden ser especificados en la misma línea de comando o como líneas de un archivo. 

2.-  BASES  DE  DATOS  XML (BD ESTRUCTURADAS)

          Una base de datos XML no es diferente de cualquier documento XML, ya que XML permite definir cualquier tipo de información. La diferencia entre documentos XML que tratan diversos tipos de contenidos, no es más que la distinta organización de sus elementos, gestionados a través de la colección de etiquetas adecuadas a cada caso.
            XML, el estándar de Internet para intercambio de información, fue diseñado para publicar tipos de datos independientemente de la plataforma empleada, permitiendo así la interoperabilidad y el comercio electrónico. En las páginas web, XML también separa el contenido de la presentación y, de este modo, permite un sistema estándar para definir e intercambiar datos entre aplicaciones y bases de datos
Tradicionalmente, desde una base de datos se podían solicitar dos clases de XML: XML estático almacenado dentro de la base de datos y XML dinámico generado a partir de los datos contenidos en la base de datos.
Introducción al XML
XML (eXtended Markup Language) es un lenguaje para la definición de lenguajes de etiquetas, lo que llamaríamos "metalenguaje". XML va a indicar como pueden ser creados otros lenguajes por marcas, define las gramáticas de otros lenguajes.
Este lenguaje es relativamente joven, eso tendiendo en cuenta que la versión 1.0 es una recomendación del World Wide Web Consortium (W3C)1 de Febrero de 1998. Si bien las ideas no son tan nuevas, ya que XML se apoya en la definición del SGML que es un estándar ISO desde los años 80.
Ventajas del XML
-          XML es un lenguaje independiente de la plataforma sobre la que se trabaje.
-          Es UNICODE, lo que hace que pueda ser utilizado en múltiples lenguajes.
-          Independencia de la información con respecto a la representación.
-          Cuando se incluye un cambio en el documento no supone un problema para su interpretación, ya que siempre hay que leer el DTD.
-          XML sigue un estándar.
-          Los datos solo dependen de los datos en si, no de su formato.
-          Para acceder a la información se puede utilizar una representación a alto nivel y no a bajo nivel como con el HTML.

¿Sustituye XML al HTML?

La respuesta a esta pregunta es no. HTML es un lenguaje destinado al diseño de páginas Web y que ha sido definido mediante el metalenguaje SGML.
XML nos permite la definición de lenguajes para el intercambio de información. Al ser XML un subconjunto del SGML, podríamos definir el lenguaje HTML mediante XML. Si bien cubriríamos una serie de inconsistencias como:
-          El uso o no de comillas en los atributos
-          Que las etiquetas deben de tener un cierre y un inicio, no pudiéndose dejar solas. O bien, si usamos una etiqueta sola, esta debe de ponerse en la forma .
 Con la corrección de estas inconsistencias es con lo que aparece el lenguaje XHTML.
CONCLUSIÓN

Tan solo algunos años atrás, las bases de datos sólo podían utilizarse en el interior de las empresas o en redes locales, pero actualmente el Web ha permitido acceder a las bases de datos desde cualquier parte del mundo.

Sabemos que los datos están en todos lados actualmente, en PCs de escritorio, en redes locales, en Internet.    Pero para que esta  información puedan obtenerlas los usuarios o clientes es necesario que exista un enlace,  usando un sistema de administración de bases de datos.     Estas facilidades le permite a los usuarios estructurar sus datos para encontrar fácilmente respuestas, compartir fácilmente información y construir soluciones que ayuden a todos a tomar mejores decisiones de negocio.
En este trabajo hemos visto distintas herramientas que tienen como función establecer una comunicación entre la base de datos y el web.    Para la integración de estas bases de datos con el Web es necesario contar con una interfaz que realice las conexiones, extraiga la información de la base de datos, le dé un formato adecuado de tal manera que puede ser visualizada desde un browser del Web, y permita lograr sesiones interactivas
Para efectuar  una requisición de acceso desde el Web hasta una base de datos no sólo se necesita de un browser del Web y de un Servidor Web, sino también de un software de procesamiento (aplicación CGI), el cual es el programa que es llamado directamente desde un documento HTML en el cliente.  Dicho programa lee la entrada de datos desde que provienen del cliente y toma cierta información de variables de ambiente.   El método usado para el paso de datos está determinado por la llamada CGI.
Las aplicaciones del CGI  son numerosas: herramientas de búsqueda, formas de registro, libros de visitas, contadores de accesos, sistemas de bases de datos, grupos de discusión, personalización de páginas, tiendas y catálogos electrónicos, y más. La gran mayoría de las aplicaciones que existen en la WWW actualmente, dependen exclusivamente del CGI.
Uno de los usos más comunes de un script CGI es enviar por correo datos a una dirección de e-mail.
En resumen  una base de datos en la web debe constar de un; Servidor web, Servidor de aplicación, Cliente web, Programa CGI (opcional), Base de Datos.
Related Posts Plugin for WordPress, Blogger...

ENTRADAS MAS POPULARES

ÚLTIMAS PUBLICACIONES

Recibe todas las actualizaciones de este blog. Sólo haz clic en el botón Me Gusta de Facebook.

Muchas gracias!!!

Powered By | Blog Gadgets Via Blogger Widgets