Servicio Web
Índice 1. Introducción 2. Montando una plataforma de pruebas. Requisitos 3. Creando una base de datos para pruebas 4. Creando el conector ODBC 5. Creando un servicio web para pruebas 6. Probando el servicio web en remoto 7. Creando un conector en perl 8. Explotando el servicio web
1.Introducción ¿Qué es un servicio web? Según la wikipedia:
Un servicio web (en inglés, Web service) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes deordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera másexhaustiva estos estándares. En resumen, nos sirve para poder utilizar datos desde otras plataformas. Por ejemplo, supongamos que tenemos una aplicación bajo Windows con la que gestionamos una tienda de camisetas y en un momento dado decidimos montar una tienda online o que nuestra PDA acceda al catálogo para poder enseñar a los clientes en tiempo real las tarifas. Una buena solución paracompartir los datos es montar un servicio web. Otra utilidad sería la de enviar mensajes SMS, por ejemplo. Supongamos una plataforma bajo Windows que mediante un módem GSM realiza envío de SMS a móviles y deseamos que nuestros colaboradores a través de sus páginas web puedan mandar también. Pues habilitamos un servicio web a través del cual nuestra base de datos reciba los datos necesarios para mandar losmensajes. De esta forma, las webs no tendrán acceso directo a nuestro aplicativo pero se les cede un pequeño protocolo para poder mandar los SMS. A nivel de programación no es difícil de implementar y el tiempo que nos lleva es relativamente reducido, en comparación con todo lo que habría que montar para exportar los datos en un XML, subirlos a un FTP y recogerlos con un cron.
¿Por qué estetexto? Normalmente los servicios web no son para uso público o no están fácilmente accesibles para jugar con ellos. Son las aplicaciones las que acceden internamente para transmitir datos. Es por ello que la seguridad no suele ser muy buena ya que el programador piensa que sólo su aplicación va a consumir los servicios, pero realmente el servicio web se encuentra en Internet esperando a quecualquiera conecte con él para solicitarle datos. ¿Qué tipo de fallos puedo encontrar? Los mismos que en cualquier web. Sobre todo del tipo SQL Injection o problemas de configuración que permitan acceder a datos sin necesidad de validarnos. ¿Cómo puedo encontrar servicios web? Google suele ser un buen aliado. Basta con buscar cosas así: - inurl:.asmx - inurl:service.asmx - inurl:service1.asmx
2.Montando una plataforma de pruebas. Requisitos Vamos a usar dos equipos para las pruebas, uno de ellos con Windows (el otro a gusto del consumidor). El equipo con Windows debe tener: o Internet Information Server (IIS) o ASP 2.0 o MySQL o MySQL ODBC Connector El otro equipo: o Perl o ActivePerl (si está en Windows también) o Componente SOAP Litle para perl
-
3. Creando una base de datos parapruebas Abrimos el gestor de bases que más nos guste, o podemos usar la consola:
Y creamos una base de datos de pruebas:
Nota: si disponemos de un tercer equipo, también podemos montar allí la BBDD, por ejemplo bajo un Linux.
4. Creando el conector ODBC En el equipo con Windows abrimos el Panel de Control y desde Herramientas Administrativas accedemos a Orígenes de Datos (ODBC)....
Regístrate para leer el documento completo.