SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
UNIDAD II: DESARROLLO DE APLICACIONES WEB




INSTITUTO TECNOLÓGICO SUPERIOR
        DE CHICONTEPEC


 INGENIERÍA EN SISTEMAS COMPUTACIONALES
               SEPTIMO SEMESTRE GRUPO UNO


PROGRAMACION WEB
LIC. SAID JAIR GUERRA ESCUDERO

        UNIDAD II: DESARROLLO DE
           APLICACIONES WEB
                                  EQUIPO:

                           JAPHET
ING. MARICELA DE LA CRUZ MARTINEZ
ING. ZACARIAS MARQUEZ CRUZ
ING. EPIFANIO MARTINEZ HERNANDEZ
ING. DAVID MARTINEZ DE LA CRUZ


                                            Página 1
UNIDAD II: DESARROLLO DE APLICACIONES WEB




                                                                     INDICE


2.1 Arquitectura de las aplicaciones Web ................................................................................... 03

2.2 Lenguajes de programación del lado del cliente ............................................................... 06

2.3 Lenguajes de programación del lado del servidor ............................................................ 07

2.4 Ambientes para el desarrollo de aplicaciones Web ......................................................... 08

2.5 Metodologías para el desarrollo de aplicaciones Web .................................................... 08

2.6 Aspectos de seguridad ................................................................................................................. 16




                                                                                                                                                 Página 2
UNIDAD II: DESARROLLO DE APLICACIONES WEB

2.1 Arquitectura de las aplicaciones Web.

       En la imagen que mostramos a continuación se puede observar un esquema
simplificado de la topología de Internet.




        Por un lado se tiene la red de la empresa (Intranet), donde se tiene un Servidor Web en
el cual se publican las páginas Web.
        Este servidor puede ser también el servidor de base de datos, o se puede tener un
servidor específico para realizar esta tarea.
        Los usuarios de Internet tendrán acceso a las páginas que sean públicas y podrán
acceder a los datos almacenados en la empresa a través de páginas dinámicas.
        Por otro lado, los usuarios de la empresa (Intranet) podrán acceder a las páginas
públicas y a las páginas privadas de la empresa

TIPOS DE ARQUITECTURAS




                                                                                       Página 3
UNIDAD II: DESARROLLO DE APLICACIONES WEB

Arquitectura de Dos Capas




       La arquitectura tradicional de cliente/servidor también es conocida como arquitectura
de dos capas. Requiere una interfaz de usuario que se instala y corre en una PC o estación de
trabajo y envía solicitudes a un servidor para ejecutar operaciones complejas. Por ejemplo,
una estación de trabajo utilizada como cliente puede correr una aplicación de interfaz de
usuario que interroga a un servidor central de bases de datos.

Ventajas del Sistema de Dos Capas:
        El desarrollo de aplicaciones en un ambiente de dos capas es mucho mas rápido que
        en ambientes anteriores, pero no es necesariamente mas rápido que con el nuevo
        ambiente de tres capas.
        Las herramientas para el desarrollo con dos capas son robustas y evaluadas. Las
        técnicas de prototipo se emplean fácilmente.
       Las soluciones de dos capas trabajan bien en ambientes no dinámicos estables, pero no
       se ejecutan bien en organizaciones rápidamente cambiantes.

Desventajas del Sistema de Dos Capas:

     Los ambientes de dos capas requieren control excesivo de las versiones y demandan
      esfuerzo de distribución de la aplicación cuando se les hacen cambios. Esto se debe al
      hecho de que la mayoría de la aplicación lógica existe en la estación de trabajo del
      cliente.
     La seguridad del sistema en un diseño de dos capas es compleja y a menudo requiere
      administración de las bases de datos; esto es debido al número de dispositivos con
      acceso directo al ambiente de esas bases de datos.
     las herramientas del cliente y de la base de datos, utilizadas en diseños de dos capas,
      constantemente están cambiando. La dependencia a largo plazo de cualquier
      herramienta, puede complicar el escalamiento futuro o las implementaciones.




                                                                                     Página 4
UNIDAD II: DESARROLLO DE APLICACIONES WEB

Arquitectura de Tres Capas




       La arquitectura de tres capas es un diseño reciente que introduce una capa intermedia
en el proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas
separadas. En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la
computadora del usuario final (el cliente). La arquitectura basada en Web transforma la
interfaz de búsqueda existente (el explorador de Web), en la interfaz del usuario final.

Ventajas de la Arquitectura de Tres Capas:
       Las llamas de la interfaz del usuario en la estación de trabajo, al servidor de capa
       intermedia, son más flexibles que en el diseño de dos capas, ya que la estación solo
       necesita transferir parámetros a la capa intermedia.
       Con la arquitectura de tres capas, la interfaz del cliente no es requerida para
       comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de
       los datos puede ser modificada sin cambiar la interfaz del usuario en la PC.
       El código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está
       diseñado en formato modular.
       La separación de roles en tres capas, hace más fácil reemplazar o modificar una capa
       sin afectar a los módulos restantes.

Desventajas de las Arquitecturas de Tres Capas y basadas en Web:

      Los ambientes de tres capas pueden incrementar el tráfico en la red y requiere más
       balance de carga u tolerancia a las fallas.
      Los exploradores actuales no son todos iguales. La estandarización entre diferentes
       proveedores ha sido lenta en desarrollarse. Muchas organizaciones son forzadas a
       escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas
       ventajas.




                                                                                        Página 5
UNIDAD II: DESARROLLO DE APLICACIONES WEB

2.2 Lenguajes de programación del lado del cliente.

HTML
        El lenguaje llamado HTML indica al navegador donde colocar cada texto, cada imagen o
cada video y la forma que tendrán estos al ser colocados en la pagina. El lenguaje consta de
etiquetas que tienen esta forma < B> o < P>. Cada etiqueta significa una cosa, por ejemplo < B>
significa que se escriba en negrita (bold) o < P> significa un párrafo, < A> es un enlace, etc.
Casi todas las etiquetas tienen su correspondiente etiqueta de cierre, que indica que a partir
de ese punto no debe de afectar la etiqueta. Por ejemplo < /B> se utiliza para indicar que se
deje de escribir en negrita. Así que el HTML no es más que una serie de etiquetas que se
utilizan para definir la forma o estilo que queremos aplicar a nuestro documento.

JAVASCRIPT
        Javascript es un lenguaje de programación utilizado para crear pequeños programitas
encargados de realizar acciones dentro del ámbito de una página web. Se trata de un lenguaje
de programación del lado del cliente, porque es el navegador el que soporta la carga de
procesamiento. Su uso se basa fundamentalmente en la creación de efectos especiales en las
páginas y la definición de interactividades con el usuario.
Las sentencias escritas en javascript se encapsulan entre las etiquetas < script> y < /script>.
por ejemplo, si en el código de una página Web incluimos la sentencia
Ejemplo
< script>
window.alert("Bienvenido a mi sitio web. Gracias...")
< /script>
al abrir la pagina con el navegador se nos mostrara una ventana de bienvenida

APPLETS DE JAVA
Es otra manera de incluir código a ejecutar en los clientes que visualizan una página web. Se
trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el
navegador ejecuta en el espacio de la página. Los Applets de Java están programados en Java y
precompilados, es por ello que la manera de trabajar de estos varia un poco con respecto a los
lenguajes de script como Javascript.
Los applets son más difíciles de programar que los scripts en Javascript y requerirán unos
conocimientos básicos o medios del lenguaje Java. La principal ventaja de utilizar applets
consiste en que son mucho menos dependientes del navegador que los scripts en Javascript,
incluso independientes del sistema operativo del ordenador donde se ejecutan. Además, Java
es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser
mayor. Como desventajas en relación con Javascript cabe señalar que los applets son más
lentos de procesar y que tienen espacio muy delimitado en la página donde se ejecutan, es
decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos. Es por
ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas
secundarias, controlar Frames, formularios, capas, etc.




                                                                                       Página 6
UNIDAD II: DESARROLLO DE APLICACIONES WEB


VISUAL BASIC SCRIPT
       Es un lenguaje de programación de scripts del lado del cliente, pero solo compatible
con Internet Explorer. Es por ello que su utilización esta desaconsejada a favor de Javascript.
Está basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. Tanto su
sintaxis como la manera de trabajar están muy inspirados en el. Sin embargo, no todo lo que
se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este último es
una versión reducida del primero. El modo de funcionamiento de Visual Basic Script para
construir efectos especiales en páginas web es muy similar al utilizado en Javascript y los
recursos a los que se puede acceder también son los mismos: el navegador.

FLASH
       Flash es una tecnología, y un programa, para crear efectos especiales en páginas web.
Con Flash también conseguimos hacer páginas dinámicas del lado del cliente. Flash en
realidad no es un lenguaje; Sin embargo, si tuviéramos que catalogarlo en algún sitio quedaría
dentro del ámbito de las páginas dinámicas de cliente. Para visualizar las "películas" Flash,
nuestro navegador debe tener instalado un programita (plug-in) que le permita visualizarlas.

CSS
        CSS, es una tecnología que nos permite crear páginas web de una manera más exacta.
Gracias a las CSS somos mucho mas dueños de los resultados finales de la página, pudiendo
hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir
márgenes, tipos de letra, fondos, colores... Incluso podemos definir nuestros propios estilos en
un archivo externo a nuestras páginas; así, si en algún momento queremos cambiar alguno de
ellos, automáticamente se nos actualizaran todas las paginas vinculadas de nuestro sitio. CSS
son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada.

2.3 Lenguajes de programación del lado del servidor.

CGS
       Es el sistema más antiguo que existe para la programación de las páginas dinámicas de
servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que
destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone
para el servidor que los ejecuta. Los CGI se escriben habitualmente en el lenguaje Perl, sin
embargo, otros lenguajes como C, C++ o Visual Basic pueden ser también empleados para
construirlos.

PERL
       Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes
de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se
compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha
interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que
desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También
desde otros lenguajes podremos ejecutar código Perl.


                                                                                        Página 7
UNIDAD II: DESARROLLO DE APLICACIONES WEB

ASP
      ASP (Active Server Pages) es la tecnología desarrollada por Microsoft para la creación
de páginas dinámicas del servidor. ASP se escribe en la misma página web, utilizando el
lenguaje Visual Basic Script o Jscript (Javascript de Microsoft).

PHP
       PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado
del servidor gratuito e independiente de plataforma, rápido, con una gran librería de
funciones y mucha documentación.


JSP
       JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como
Paginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con
programación en Java. Con JSP podemos crear aplicaciones web que se ejecuten en variados
servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje
multiplataforma. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML
habitual.

2.4 Ambientes para el desarrollo de aplicaciones Web.

      Los IDE (ambientes integrados de desarrollo) para aplicaciones Web son muy
numerosos. Considerar los que permitan trabajar con los diferentes lenguajes para Web.
Algunos son específicos para lenguajes del lado del servidor. Por ejemplo, Visual Studio solo
soporta ASP.NET del lado del servidor. Existen Ideas de buena cantidad, libres y gratuitos de
buena calidad.

       Algunos ejemplos de IDE para Web:

       Microsoft Visual Studio.
       Microsoft Web Developer Express.
       Mono (para ASP.NET).
       NetBeans.
       Jbuilder.
       Eclipse.


2.5 Metodologías para el desarrollo de aplicaciones Web.

      Los sitios Web se presentan de todas formas y modelos, desde sencillas página a
megasitios que gestionan los negocios para empresas a nivel mundial, el proceso de
desarrollar un sitio implica los mismos pasos básicos:

              CONCEPTUALIZAR E INVESTIGAR
       Esta primera fase es emocionante. Se empieza con una idea (“sitio de venta en línea”,
“ambiente virtual de aprendizaje”, “banca en línea”, etc.) y luego realizar una lluvia de ideas
sobre cómo se va a manifestar como sitio Web. Este es el momento de las listas y bocetos,
pizarras y cuadernos. ¿Qué va hacer emociónate? ¿Qué va haber en la primera pagina?

                                                                                       Página 8
UNIDAD II: DESARROLLO DE APLICACIONES WEB

       No se debe preocupar por el ambiente de desarrollo Web hasta que se tenga las ideas y
estrategias juntas. Esto implica formular a los clientes (o así mismo) una serie de preguntas
referidas a recursos, objetivos y lo más importante, los usuarios.
       Muchas grandes empresas de diseño y desarrollo Web dedican más tiempo a
investigar e identificar las necesidades del cliente que cualquier otro nivel de producción.
Para sitios grandes, este paso puede incluir casos de estudios, entrevistas, y un amplio estudio
de mercado.
       Es posible que no se necesite dedicar esa cantidad de esfuerzo (o dinero) a la
preparación de un sitio Web, pero sigue siendo acertado tener claro las expectativas y
recursos al principio del proceso, particularmente cuando se trata de trabajar de acuerdo a
un presupuesto.
       Una muestra de las preguntas que se podrían formular a los clientes o a uno mismo,
durante la fase de investigación del diseño pudriera ser:

Estrategias
       ¿Por qué crea este sitio Web? ¿Qué espera conseguir?
        ¿Qué ofrece a los usuarios?
        ¿Qué quiere que los usuarios hagan en su sitio Web? ¿Después de que se hayan
marchado?
       ¿Qué hace volver a sus visitantes?

Descripción generan del sitio
        ¿Qué tipo de sitio es? (¿Meramente proporcional? ¿Una publicación? ¿Un punto de
venta?
       ¿Qué características tendrá?
       ¿Cuáles son sus mensajes más importantes?
       ¿Quiénes son sus competidores? ¿Qué hacen bien? ¿Qué se podría mejorar?

Audiencia objetivo
       ¿Quién es su principal audiencia?
       ¿Tiene experiencia con internet y conocimientos técnicos?
       ¿Puede haber previsiones de la velocidad de conexión de un usuario medio?
       ¿Plataforma? ¿Tamaño de monitor? ¿Navegador?
       ¿Cada cuanto se espera que visiten el sitio? ¿Cuánto tiempo permanecerá durante
una visita media?

Contenido
      ¿Quién es responsable de generar el contenido original?
      ¿Cómo se enviara el contenido?

Recursos
      ¿Qué recursos se ha dedicado al sitio (presupuesto, personal, tiempo)?
      ¿Requiere el sitio un sistema de gestión de contenido?
      ¿El mantenimiento se puede gestionar por personal del cliente?
      ¿Tiene un servidor para su sitio?
      ¿Ha registrado un nombre de dominio para su sitio?

Aspecto grafico
      ¿Tiene en mente un aspecto para el sitio?

                                                                                        Página 9
UNIDAD II: DESARROLLO DE APLICACIONES WEB

       ¿Tiene ya estándares existentes, como logos y colores, que se tengan que incorporar
       ¿Forma el sitio parte de un sitio más grande o grupos de sitios con estándares de
diseño con lo que tiene que coincidir?
       ¿Qué aspecto tiene otros sitios Web? ¿Qué le gusta de ellos? ¿Qué sitios no le gustan?

      Para los sitios Web dinámicos, se requiere del diseño de la base de datos que
almacenará la información que se procese, siendo necesario después de la investigación
diseñar los modelos para su representación como lo es un modelo Entidad-Relación.




       En la figura se muestra el modelo entidad – relación de una porción de una base de
datos de ventas en línea.
       También se deben obtener el conjunto de tablas que conformarán la base de datos, que
para este caso queda de la siguiente manera:

      categoria(id_cat, Descripcion)
      producto (id_pro, clave, nombre, precio, existencia, preciov, id_cat)
      clientes (id_clie, clave, nom, dir, tel)
      factura (id_fac, fecha)
      ventas (id_clie, id_pro, id_fac, cantc, pu)
      administradores (id_ad, nom, dir, tel)

              CREAR Y ORGANIZAR CONTENIDO
La parte más importante de un sitio Web es su contenido. A pesar del ruido sobre tecnologías
y herramientas, el contenido sigue siendo el rey de internet. Tiene que haber algo de valor,
tanto sea algo de leer, algo que hacer o algo que comprar que atraiga a los visitantes y haga
que regresen. Es acertado ser sensible a la necesidad de un buen contenido.




                                                                                    Página 10
UNIDAD II: DESARROLLO DE APLICACIONES WEB

Creación de contenido
       Cuando se crea un sitio Web para un cliente, se necesita establecer inmediatamente
quien será responsable de generar el contenido que va en el sitio. Idealmente, el cliente es
responsable de generar su propio contenido y destinara los recursos apropiados para hacerlo.

Diseño de la información
       Una vez que se tiene el contenido o al menos una idea clara del contenido que tendrá el
siguiente paso es organizar el contenido para que sea accesible de forma fácil e intuitiva para
su audiencia. Nuevamente, este es el momento para las listas y bocetos. Se debe tener todo lo
que necesita en el sitio en una mesa. Organizarlo por importancia, categoría, etc. Decidir lo
que va en la página principal y lo que se divide en apartados. Pensar en cómo los usuarios
esperarían encontrar la información en su sitio y diseñar en base a sus necesidades y
suposiciones en mente.
       El resultado de la fase de diseño de información puede ser un diagrama (a menudo
llamado mapa de sitio) que revela la “forma” global del sitio.
       Las páginas en diagramas normalmente se representan por rectángulos; las flechas
indican vínculos entre páginas o secciones del sitio.

El mapa del sitio proporciona a los diseñadores una idea de la escala del sitio y como se
relacionan las secciones y ayudas en el diseño de navegación.




       En la figura se muestra el mapa general de un pequeño sitio de ventas en línea que
permite el inicio de sesión a dos tipos de usuarios. Es pequeño comparado con los diagramas
para sitios corporativos, pero demuestra cómo se representan las paginas y las conexiones
entre paginas.

     No hay nada mejor que lápiz y papel cuando llega al momento de poner en marcha y
documentar el proceso creativo. Antes de implementar cualquier cosa no hay mejor forma de

                                                                                     Página 11
UNIDAD II: DESARROLLO DE APLICACIONES WEB

expresar las ideas rápidamente que en un bloc de notas, en una servilletas o pizarra, o
cualquier superficie que se encuentre disponible. Se trata de creatividad.

              DESARROLLAR EL ASPECTO VISUAL Y COMPORTAMIENTO

       El aspecto visual de un sitio hace referencia a su diseño grafico y apariencia visual
global incluido su esquema de color tipografía y estilo de imagen.

       Dibujar
       Esta es otra oportunidad para sacar lápices, rotuladores y cuadernos. O quizás se
prefiera trabajar las ideas en alguna herramienta de edición grafica (como Photoshop). De
cualquier forma, es el momento de ser creativo y probar cosas. El resultado es uno o más
bocetos que muestra él estilo visual propuesto para el sitio.

       Un boceto es normalmente un archivo grafico plano en las dimensiones aproximadas
de la ventana del navegador. Cuando es necesario mostrar interactividad (como un efecto),
algunos diseñadores utilizan una capa que se puede activar y desactiva para simular el efecto.

      En algunos casos puede ser necesario crear una página principal prototipo en HTML
para mostrar la interactividad y las características animadas.

       En la fase de dirección artística es para explorar el aspecto que tendrá el sitio, por lo
que los bocetos gráficos planos son normalmente adecuados.

        El proceso de dirección de arte En la mayoría de los trabajos de desarrollo Web
profesionales, el cliente recibe dos o tres bocetos que muestran su página principal en varios
estilos visuales.

      En algunos casos, se puede incluir un diseño de segundo o tercer nivel si es importante
mostrar cómo se desarrolla el diseño en varios niveles.

        De forma ideal, se debe contar con una lista de elementos que cada página debe
contener, incluidas imágenes obligatorias, elementos de navegación y un manuscrito para el
texto. Puede incluso haber un diagrama de la funcionalidad.




                                                                                      Página 12
UNIDAD II: DESARROLLO DE APLICACIONES WEB

        Después de revisar los bocetos, el cliente elige uno, a menudo con una lista de cambios,
solicitando una nueva ronda de diseño hasta que el diseño final esté aprobado.

              PRODUCIR UN PROTOTIPO

       Una vez que el diseño esta aprobado y el documento están listos, el sitio entra en la
fase de producción se puede realizar por una persona. Es más común en el diseño Web
comercial contar con un equipo de personas que trabajan en tareas especializadas.

        El departamento de arte utiliza sus herramientas graficas para crear todos los gráficos
necesarios para el sitio. El departamento de producción codifica el contenido con HTML y
demás lenguajes requeridos, formatea el texto con hojas de estilo. Pueden crear las hojas
finales o simplemente plantillas que se rellenan con el contenido en el momento. Los
programadores escriben los scripts y aplicaciones del lado del servidor necesarias para que el
sitio funcione según lo esperado. Puede haber también elementos multimedia como videos o
películas flash. Es decir, todas las partes del sitio se tienen que crear.

        En algún momento, todas estas piezas se juntan en un sitio. Este no es necesariamente
otro paso, sino que más bien es un proceso continuo, como en el diseño de software, el primer
prototipo a menudo se denomina la versión “alfa”. Se debería poner disponible únicamente a
las personas dentro del equipo Web para su revisión antes de presentárselo al cliente.
Después de los cambios, la segunda revisión se denomina “beta”. El cliente debería implicarse
en esta fase. En este punto, hay todavía mucho que hacer antes de que el sitio esté listo para
llevarse a la Web. Existen también sitios ahí afuera, a menudo aplicaciones Web y servicios,
que ponen disponibles sus versiones beta al público o una base limitada de suscriptores con el
fin de recibir sus observaciones o comentarios.

              PROBARLO

       Todos los sitios Web se tienen que probar antes de que estén listos para el público. Los
desarrolladores Web profesionales dedican tiempo y recursos al calendario de producción
para realizar pruebas. Tanto formalmente como informalmente, los sitios se deberían probar
para funcionalidad básica, rendimiento en diferentes entornos de navegación y facilidad de
uso.

        El sitio se puede probar localmente (en el disco duro) antes de subirse a su lugar
definitivo en el servidor Web. También es de utilidad establecer un sitio de pruebas oculto en
el servidor de modo que los problemas se puedan resolver en su entorno natural antes de
hacerlo público.

Comprobación básica de calidad
       Como mínimo, todos los sitios se deberían comprobar para asegurar de que funcionan.
En el negocio del diseño Web, comprobar un sitio en busca de funcionalidad básica es parte
de lo que se denomina la fase de control de calidad de la producción.

       Las siguientes preguntas abordan algunos de los requerimientos mínimos antes de
publicar un sitio en la Web.

             ¿Está todo el contenido?: asegúrese de que no falta ningún contenido.


                                                                                      Página 13
UNIDAD II: DESARROLLO DE APLICACIONES WEB

            ¿Existen errores tipográficos o errores gramaticales?: la importancia de revisar
             un texto a veces se pasa por alto, pero los errores en la copia pueden dañar
             seriamente la credibilidad percibida del sitio.
            ¿Funcionan todos los vínculos?: es fácil dejar vínculos sin vincular durante el
             proceso de producción. También es posible que algunos archivos se hayan
             movido de sitio y que los vínculos no estén actualizados. Antes de salir a la Web,
             se debe comprobar que todos los vínculos en las páginas son correctos.
            ¿Se muestran todas las imágenes?: Confirmar que todos los archivos gráficos
             están en el directorio adecuado y que la ruta de acceso correcta se utiliza en los
             elementos para evitar que falten imágenes.
            ¿Funcionan adecuadamente todos los scripts y aplicaciones?: Ejecutar las
             paginas en algunos escenarios típicos de usuario (completando formularios,
             comprando un producto, o cualquier otra interacción que tenga sentido para el
             sitio) para asegurarse de que todo funciona como debería.


Prueba del entorno de navegación
      El sitio se verá en un amplio rango de entornos de navegación que impactara en la
forma que tiene y sus funciones. Otra parte de la comprobación de calidad es comprobar las
páginas bajo tantas condiciones como sea posible.

       Normalmente se debe probar el sitio en diferentes sistemas operativos y numerosas
versiones de navegador.

       Un sitio robusto no tendrá ningún problema cuando se pruebe de acuerdo a los
siguientes criterios.

            ¿Qué aspecto tiene la página en diferentes navegadores?: ¿en otra plataforma?
            Los navegadores son desiguales en su soporte de hojas de estilo en cascada, por
             lo que si se utiliza CSS para el diseño de página, es necesario que se vea en
             tantos navegadores como sea posible
            ¿Cómo funciona el sitio en diferentes navegadores?: ¿en otra plataforma? De
             forma similar, existen diferencia de navegador en el soporte de script, por lo
             tanto, es conveniente realizar pruebas de funcionalidad bajo más de una
             configuración de navegador/plataforma.
            ¿Qué les pasa a las paginas cuando la ventana del navegador se hace muy
             grande o muy pequeña?: ¿Qué pasa si el texto se amplía mucho o se reduce
             mucho? ¿Puede el sitio soportar una cierta cantidad de ventanas y tamaño de
             texto? ¿Se sale el contenido de la pantalla? ¿Se divide la página?
            ¿Se puede utilizar el sitio en un navegador de solo texto?: ¿Qué verán los
             usuarios si acceden a su página con un teléfono móvil o quipo similar? Las
             páginas deberían estar accesibles en todos los dispositivos de navegación.
             Merece la pena ver el sitio bajo condiciones mínimas para ver si puede realizar
             alguna modificación para mejorar la experiencia.
            ¿Es el sitio útil con los gráficos desactivados?: Algunos usuarios con conexiones
             más lentas pueden navegar por la Web con gráficos desactivados en el
             navegador para agilizar la visualización del contenido. Algunos navegadores

                                                                                     Página 14
UNIDAD II: DESARROLLO DE APLICACIONES WEB

              muestran el texto alternativo para cada elemento de imagen pero otros no. ¿Ha
              tenido en cuenta a esos usuarios?
             ¿Qué sucede si el usuario no puede ver los elementos multimedia?: Sería
              estupendo si el usuario tuviera los plugins necesarios para ver la multimedia
              como las películas flash o Windows media, pero desafortunadamente, este no es
              el caso. ¿Proporciona ayuda para obtener los plugins que necesita? ¿Existen
              versiones alternativas de su contenido para aquellos que no puedan ver la
              multimedia?
             ¿Qué aspecto tiene el sitio en una conexión de modem por línea telefónica?:
              existen todavía una importante cantidad de usuarios que acceden a la Web con
              conexiones lentas. ¿Hay algo que puede hacer para que sus páginas se carguen
              rápidamente?

Pruebas de usuario

       Otro tipo de pruebas que es importante realizar son las pruebas de usuario. Este
proceso implica sentar a gente en el sitio y ver lo sencillo que les es encontrar información o
completar tareas. Las pruebas de usuario se llevan a cabo pronto en el proceso de desarrollo
para que el diseño del sitio se pueda ajustar antes de que empiece la producción seria. No es
raro realizar pruebas adicionales de usabilidad en intervalos regulares durante el proceso de
producción e incluso después de que se haya lanzado el sitio, para que el sitio se pueda
modificar para atender mejor las necesidades de los visitantes.

       Existen compañías que se puede contratar para que realicen pruebas controladas,
pero el precio normalmente es elevado, siendo una opción solamente para sitios Web
comerciales con importantes presupuestos. Sin embargo, es posible llevar a cabo una prueba
de usuario informal con los miembros de la familia, compañeros de trabajo, amigos y
cualquier otra persona que consiga que se siente delante de la computadora y conteste
algunas preguntas.

        Existen dos tipos generales de pruebas de usuario: comportamiento observado y
pruebas orientadas a tareas. En la primera, la persona se sienta delante del sitio y lo explore
por su cuenta. Proporcionan información a medida que se va avanzando, anotando lo que le
gusta y lo que no le gusta, que está claro y que está confuso.

       En las pruebas orientadas a tareas, a los usuarios se les proporciona una serie de tareas
de dificultad variada a realizar en el sitio como “averiguar quien ofrece las videocámaras a
mejor precio”. Un observador toma notas de cómo se completa la tarea, al igual que lo
vínculos que sigue el usuario en el proceso de completar la tarea.

             ¿Pueden los usuarios decir a primera vista de que se trata un sitio?
             ¿Existen obstáculos en la forma de alcanzar los objetivos? ¿Pueden encontrar
              fácilmente información crítica o realizar una compra?
             ¿Disfrutan las personas utilizando el sitio?
             ¿Existe una tarea determinada o característica en el sitio       al que pare que
              tropiezan múltiples usuarios?




                                                                                      Página 15
UNIDAD II: DESARROLLO DE APLICACIONES WEB

              LANZAR EL SITIO

       Una vez que se tiene todos los detalles resueltos para el sitio, es el momento de
enviarlo al servidor final, y ponerlo disponible al mundo.

        Es una buena idea realizar una última ronda de pruebas para asegurarse que todo sea
transferido con éxito y que las páginas funcionan adecuadamente bajo la configuración del
servidor final. Esto puede parecer trabajo adicional, pero esto es la reputación del negocio o la
del cliente la que va en el éxito del sitio Web, por lo que prestar atención a los detalles es
esencial.

              MANTENER EL SITIO

         Un sitio Web nunca está del todo terminado. De hecho la posibilidad de realizar
actualización y mantener el contenido actualizado es una de las ventajas del medio Web. Es
importante tener una estrategia para lo que ocurriría con el sitio después de su lanzamiento
inicial.

       Aunque el mantenimiento es un proceso continuo que ocurre después de que el sitio
haya sido creado inicialmente, las decisiones relacionadas con el mantenimiento se deberían
tomar pronto en el proceso de desarrollo. Por ejemplo, se debería dejar claro quién será el
responsable del mantenimiento del sitio, también decidir que partes del sitio se actualizaran y
con qué frecuencia. La actualización afectara a la forma en que se organice la información y
diseño del sitio.

       También se debería considerar la vida útil del sitio. Si es un sitio que proporciona un
evento especifico, ¿Qué sucederá con el sitio cuando el evento termina? Incluso en los sitios
diseñados para estar en funcionamiento un tiempo requerirán normalmente un rediseño
después de unos años para mantenerse al tanto de los cambios de contenido y las practicas
actuales de publicaciones.



2.6 Aspectos de seguridad.

       En este tema se analiza el papel de la seguridad en los sitios Web dinámicos. Se
indicará quién puede estar interesado en la información y como podrían obtenerla, los
principios implicados en la creación de una política para evitar este tipo de problemas y
algunas tecnologías disponibles para salvaguardad la seguridad de un sitio Web incluida la
criptografía, la autentificación y el rastreo.

Entre los aspectos de seguridad están:

    IMPORTANCIA DE LA INFORMACIÓN

    Al analizar el tema de la seguridad, lo primero que se debe valorar es la importancia de los
datos que se está protegiendo, tanto para el propietario como para los posibles atacantes.
        Puede resultar tentador creer que siempre debería aplicarse el nivel más alto
seguridad a todos los sitios, pero la protección tiene un coste. Antes de decidir el esfuerzo o
los gastos que se desean invertir en el sistema de seguridad, es necesario determinar el valor
de la información.

                                                                                       Página 16
UNIDAD II: DESARROLLO DE APLICACIONES WEB

        El valor de la información almacenada en el equipo de un usuario que lo utilice para
divertirse, el de una empresa, el de un banco y el de una organización militar es diferente, al
igual que varían los esfuerzos que invertirá un atacante para obtener acceso a dicha
información. Se debe determinar el valor que tiene los contenidos almacenados en los
equipos para un visitante mal intencionado.
       Los usuarios que utilizan la computadora como pasatiempo dispondrán de tiempo
limitado para profundizar en el tema de la seguridad de sus sistemas o en aumentarla. Como
la información que almacenaran en sus equipos es poco probable que interese a otros
usuarios, los ataques serán poco frecuentes y el esfuerzo invertido en ellos será limitado. Sin
embargo, todos los usuarios de equipos con conexión a la red deberían tomar una serie de
precauciones ya que incluso los equipos con los datos menos interesantes pueden utilizarse
como plataformas para lanzar ataques a otros sistemas.
       Los equipos militares son un objetivo obvio tanto para individuos como para gobiernos
extranjeros. Para atacar a los gobiernos es necesario disponer de muchos medios, por lo que
resulta aconsejable invertir en personal y otro tipo de recursos para garantizar la aplicación
de todas las precauciones posibles.

    AMENAZAS CONTRA LA SEGURIDAD.

Las amenazas variaran en función del tipo de sitio Web pero se pueden citar las siguientes:
      Exposición de datos confidenciales
      Perdida o destrucción de datos
      Modificar datos
      Denegación de servicio
      Errores en el software
      Repudio

Exposición de datos confidenciales
       La información almacenada en los equipos o la transmitida de un equipo a otro, pueden
ser confidenciales. Podrían tratarse de información destinada únicamente a determinadas
personas, como listas de precios de mayoristas, información suministrada por un cliente,
como su contraseña, datos de contacto o el número de una tarjeta de crédito.
       Los servidores Web no son el lugar más aconsejable en el que se deba guardar
información secreta. Si se almacenan los datos sobre nomina o el plan para la dominación
del mundo en una computadora, no se debería utilizar el mismo que el utilizado como
servidor Web. Los servidores Web son equipos diseñados para su acceso público por lo que
solo deberían contener información que se ofrezca públicamente o que se acabe de recoger
del público. Para reducir el riesgo de la exposición de datos, se debe limitar los métodos de
acceso a la información y los usuarios que disponen de dicho acceso, lo cual implica
desarrollar las labores de diseño teniendo presente la seguridad, configurar el servidor y el
software de manera correcta, programar con atención, realizar pruebas exhaustivas, eliminar
los servicios innecesarios de servidor Web y exigir autentificación.
       Se deben Suprimir los servicios innecesarios de un servidor Web para reducir el
número de puntos débiles potenciales. Cada servicio que este ejecutando puede resultar
vulnerable. Es necesario mantener todos los servicios actualizados para eliminar los puntos
vulnerables conocidos. Los servicios no utilizados pueden resultar peligrosos. Si no se utiliza


                                                                                     Página 17
UNIDAD II: DESARROLLO DE APLICACIONES WEB

el comando rcp, ¿Por qué tenerlo instalado?, los sistemas operativos actuales instalaran una
gran cantidad de servicios que no se necesitan y que se debería eliminar.
       La autenticación implica solicitar a los usuarios que demuestren su identidad. Cuando
un sistema sabe quien realiza la petición, puede decidir si dicha persona dispone de acceso.
Existen varios métodos de autenticación de los cuales solo se utilizan dos de forma
generalizada: las contraseñas y las firmas digitales.
       Los datos también corren el riesgo de exposición en sus trayectos por la red. Las redes
TCP/IP incorporan una gran cantidad de funciones que han contribuido a convertirlas en el
estándar de facto para la conexión de diversas redes como internet. Sin embargo, la seguridad
no se incluye entre ellas. Los protocolos TCP/IP dividen los datos en paquetes y los reenvían
de equipo en equipo hasta que alcanza su destino.

Por lo tanto, los datos pasan a través de una gran cantidad de computadoras hasta llegar a su
destinatario, como se ilustra en la figura 2.8, y cualquiera de ellas puede ver los datos en su
tránsito.




       Los datos enviados a través de internet recorren una gran cantidad de equipos
potencialmente inseguros.
       Existen comandos y aplicaciones de software para ver la ruta que siguen los datos
desde un equipo origen hasta el equipo de destino. Si los datos van dirigidos a un equipo de
un mismo país, podrían atravesar una decena de equipos diferentes. Si fueran destinados a un
equipo situado fuera del país, el número de intermediarios podría supera los veinte. Si una
organización es de gran tamaño y consta de una red compleja, los datos podrían recorrer
hasta cinco equipos antes de abandonar el edificio. Para proteger la información confidencial,
se pueden cifrar los datos antes de enviarlos a través de una red y descifrarlos en el otro
extremo. Los servidores Web suelen utilizar el sistema SSL (Secure Socket Layer),
desarrollando por Netscape para realizar esta tarea mientras los datos navegan entre los
servidores Web y los navegadores.
       Se trata de una forma bastante barata en términos de costes y de esfuerzos de proteger
las transmisiones, pero como el servidor necesita cifrar y descifrar los datos en lugar de
enviarlos y recibirlos simplemente, el número de visitantes por segundo al que puede dar
servicio el equipo se reduce drásticamente, debido al tiempo que requiere este proceso.


                                                                                     Página 18
UNIDAD II: DESARROLLO DE APLICACIONES WEB


Pérdida o destrucción de la información
         La pérdida de datos puede resultar más costosa que su apropiación indebida. Si se
llevan meses construyendo un sitio, recogiendo información sobre usuarios y pedidos, si no se
ha realizado ninguna copia de seguridad de esos datos, se verán obligados a volver a escribir
el sitio Web y a comenzar desde cero.

Un pirata informático podría colarse en el sistema y formatear el disco duro. También podría
ocurrir que un programador o un administrador poco atento eliminen el disco sin querer o
que un disco se estropee. Los discos duros en ocasiones fallan.
        Se pueden adoptar varias medidas para reducir la probabilidad de perder datos.
Proteger los servidores contra ataques informáticos. Reducir al mínimo los empleados con
acceso al equipo. Contratar únicamente personal competente y atento. Comprar discos duros
de calidad.
        Independientemente del causante de las pérdidas de datos, solo hay una forma de
protección real: las copias de seguridad. La realización de copias de seguridad es una función
vital. Asegúrese de volcar sus datos de manera periódica y de almacenar las copias de
seguridad lejos de los equipos habituales. Aunque es poco probable que los locales de su
empresa se quemen o sufran alguna otra catástrofe, el almacenamiento de una copia de
seguridad fuera de ellos es una medida de seguridad barata y eficaz.

Modificar datos
       Aunque la pérdida de datos puede causar muchos daños, su modificación puede
resultar aun peor. La eliminación completa de los datos no tardaría mucho tiempo en
detectarse sin embargo detectar una modificación de datos requeriría de mucho más. Entre
las formas de modificación se incluyen cambios en los archivos de datos ejecutables. La
intención de un pirata informático puede ser modificar el aspecto de la Web u obtener
beneficios fraudulentos. Mediante la sustitución de archivos ejecutables con versiones
saboteadas, un pirata informático que haya logrado entrar una vez en el sistema podría crear
una puerta trasera secreta para futuras visitas.
       Se puede proteger los datos contra su modificación al viajar por la red mediante una
firma. Esta técnica no impide la modificación de los datos pero, si el receptor comprueba que
la firma coincide al recibir los archivos, sabrá que el archivo no se ha modificado. Si cifra los
datos para proteger contra la visualización no autorizada, resultaran muy difíciles de
modificar durante el trayecto sin su detección.
       La protección de los archivos almacenados en un servidor frente a su modificación
exige el uso de las funciones de permisos de acceso a archivos que incorpore el sistema
operativo y protege el sistema de acceso no autorizado. La aplicación de permiso de archivo
permite autorizar el uso de sistema, pero no modificar los archivos del sistema ni de otros
usuarios.
       Detectar las modificaciones puede resultar difícil. Si se descubre que alguien ha
penetrado en el sistema de seguridad, ¿Cómo se puede saber si se han modificado archivos
importantes? Algunos archivos, como los archivos datos que se almacenan en una base de
datos, están ideados para cambiar con el paso del tiempo. Sin embargo, la intención de otros
es permanecer invariables desde su instalación a menos que se actualicen deliberadamente.
La modificación de programas y datos puede resultar engañosa, y aunque los programas
puedan reinstalarse si se sospecha que han sido modificados, puede que no sepa que versión
de los datos esta “intacta”.
       Existen aplicaciones que permiten comprobar la integridad de los archivos, como
Tripwire (htt://www.tripwire.com). Esta aplicación registra información sobre archivos en


                                                                                       Página 19
UNIDAD II: DESARROLLO DE APLICACIONES WEB

un estado seguro, probablemente inmediatamente después de la instalación, y permite
utilizarla en un momento posterior para verificar si los archivos han variado.

Negación de servicio
        Una de las amenazas más difíciles de evitar es lo que se denominado Negación de
servicio (DoS en Ingles). Se produce cuando alguien impide a los usuarios acceder a un
servicio o retrasa el acceso a un servicio en el que el tiempo es crucial. A principio de 2000, se
produjo una oleada de ataques DoS distribuidos a importantes sitios Web. Entre las víctimas
se encontraba yahoo!, eBay, Amazon, ETrade y Buy.com. Estos sitios están acostumbrados a
niveles de trafico que solo se puede concebir en sueños, pero siguen siendo vulnerables a este
tipo de ataques. Aunque los atacantes no ganan nada con conseguirlo colapsar un sitio, el
propietario del mismo puede perder ingreso, tiempo y reputación.
        Algunos sitios esperan concentrar sus transacciones en determinadas horas. Algunos
sitios de apuestas en línea experimentan una mayor demanda antes de un evento deportivo
importante. Una de las razones de la dificultad de evitar este tipo de ataques es que se pueden
introducir de diferentes formas. Se puede instalar un programa en el equipo de la victima que
utilice el tiempo del procesador del sistema, el envió inverso de correo basura o recurrir a una
herramienta automatizada. El correo basura inverso envía correo basura en el que se incluye
el destinatario como emisor. De esta forma, el destinatario recibirá miles de respuestas de
usuario enfadados.
        Existen herramientas automatizadas que pueden lanzar ataques DoS a un destinatario
no concreto. No hay que ser un genio para buscar los puntos débiles de una serie de equipos e
instalar la herramienta en los mismos. Como el proceso esta automatizado, un atacante puede
instalar la herramienta en un solo host en cuestión de segundos. Una vez afectados varios
equipos, reciben instrucciones para inundar el destino con tráfico de red.
         Protegerse de ataques DoS es una difícil tarea. Si se realiza una búsqueda, se pueden
descubrir los puertos predeterminados que utilizan las herramientas DoS habituales y
cerrarlos. Puede que el enrutador cuente con un mecanismo para limitar el porcentaje de
tráfico que utiliza determinados protocolos como por ejemplo ICMP. Resulta más sencillo
detectar los host de una red utilizada para atacar a otros que proteger los equipos de posibles
ataques. Si todos los administradores de redes se comprometieran a vigilar su propia red, los
ataques DoS no serian un problema. Como existen tantos métodos de ataque, la única defensa
realmente eficaz consiste en controlar el comportamiento del tráfico normal y contar con una
serie de expertos para que adopten las medidas oportunas en caso de que se produzca alguna
situación fuera de lo normal.

Errores en el software
       Es posible que el software que se haya comprado, obtenido o escrito incluya errores
graves. Dados los cortos plazos de desarrollo asignado a los proyectos Web, es muy probable
que el software incluya errores. Todas las iniciativas comerciales basadas en procesos
informáticos resultaran vulnerables a software con errores.
       Los errores en el software pueden causar todo tipo de compartimientos impredecibles
incluida la indisponibilidad del servicio, lagunas de seguridad, pérdidas financieras y
servicios deficientes. Entre las causad habituales de los errores se pueden citar las malas
especificaciones técnicas, suposiciones erróneas realizadas por los desarrolladores y pruebas
incompletas.

Malas especificaciones técnicas
       Cuanto más escasa y ambigua resulte su documentación de diseño, más probables que
el producto final incluya errores. Aunque puede que resulte obvio especificar la anulación de
un pedido si se rechaza la tarjeta de crédito de un cliente. Mientras menos experiencia tengan

                                                                                        Página 20
UNIDAD II: DESARROLLO DE APLICACIONES WEB

los desarrolladores con el tipo de sistemas con el que están trabajando, más precisas deberían
ser las especificaciones técnicas.

Suposiciones erróneas hechas por los desarrolladores
       Los diseñadores y los programadores de un sistema necesitan realizar una gran
cantidad de suposiciones. Es de esperar que las documenten y que resulten aceptadas. Sin
embargo, las suposiciones pueden resultar erróneas. Por ejemplo, un desarrollador podría
asumir que los datos de entrada serán validos, que no incluirán caracteres inusuales o qué
cantidad de caracteres introducidos será inferior a un tamaño dado. También podría asumir
que no tendrán lugar dos acciones simultaneas que entren en conflicto o que una tarea de
procesamiento compleja lleva más tiempo que una tarea sencilla.
       Suposiciones como estas se pueden deslizar por que suelen ser ciertas. Un pirata
informático puede aprovecharse de un desbordamiento de búfer generado por una suposición
hecha por un programador con respecto a la longitud máxima de los datos de entrada o un
usuario legitimo puede obtener mensajes de error confuso o abandonar la visita por que a los
desarrolladores no se les ocurrió prever que el nombre de una persona puede incluir un
apostrofe. Este tipo de errores se pueden detectar y solucionar mediante una combinación de
pruebas y revisiones detallada del código.
       Históricamente, el sistema operativo o las debilidades del nivel de aplicación
exploradas por los piratas informática se relacionan con los desbordamientos de búfer o con
los errores de sincronización.

Pruebas incompletas
        Resulta prácticamente imposible verificar todas las posibles entradas de los usuarios
en todos dispositivos de hardware existentes, con todos los sistemas operativos posibles y
utilizando todos los parámetros de usuarios disponibles. Es necesario implementar un plan
de pruebas bien diseñado que verifique todas las funciones del software en un conjunto
representativo de equipos. Un conjunto de pruebas bien planteado debería probar todas las
líneas de código del proyecto al menos una vez. De manera ideal, estas pruebas deberían
automatizarse para poder ejecutarlas en los equipos seleccionados con muy poco esfuerzo.

El problema más importante de esta operación es que se trata de un trabajo repetitivo muy
poco atractivo. Aunque hay gente a la que le gusta romper cosas, hay muy pocas a las que le
guste romper la misma cosa una y otra vez. Es importante que en este proceso participen
otras personas además de los desarrolladores originales. Uno de los objetivos principales de
las pruebas es detectar las suposiciones erróneas realizadas por los desarrolladores. Es
probable que una persona no implicada realice suposiciones diferentes. Además, los
profesionales no suelen mostrarse muy implicados a buscar errores dentro de su trabajo.

Repudio
       El ultimo riesgo que considerar es el repudio. El repudio tiene lugar cuando una parte
implicada en una transacción niega haber tomado parte en ella. En el comercio electrónico
puede tratarse de una persona que realice un pedido a través del sitio Web y que rehace la
autorización para realizar el cargo sobre su tarjeta de crédito, o una persona que acepte algo
procedente del correo electrónico y que después afirme que alguien falsifico dicho correo.
De manera ideal, las transacciones financieras deberían garantizar la seguridad de que
ninguna de las partes las repudiara. Ninguna parte podría denegar su participación en una
transacción o, para ser más exacto, ambas partes podrían demostrar de manera terminante
las acciones realizadas por la otra parte ante un tercero, como por ejemplo un tribunal. En la
práctica, esto no suele ocurrir. La autenticación ofrece ciertas ganancias sobre la parte con la


                                                                                      Página 21
UNIDAD II: DESARROLLO DE APLICACIONES WEB

que se está tratando. Los certificados digitales de autenticación emitidos por una
organización de confianza brindan una gran fiabilidad.
También deberían poder certificarse los contenidos de los mensajes enviados por cualquiera
de las partes. Para las transacciones entre las partes con una relación ya establecida, los
certificados digitales y el uso de comunicaciones cifradas o firmadas proporcionan una forma
efectiva de limitar el repudio. Si las transacciones son aisladas, como el contacto inicial entre
un sitio de comercio electrónico y un usuario que utilice una tarjeta de crédito, esta opción no
resulta tan práctica.

Las compañías de comercio electrónico deben estar dispuestas a probar su identidad y a
contratar los servicios de una autoridad de certificación como VeriSign
(http://www.verisign.com) o Thawte (http://www.thawte.com) para garantizar la
autenticidad de la compañía. En las pequeñas transacciones, los comerciantes están
dispuestos a admitir un determinado nivel de fraude o riesgo de repudio a cambios de
mantener el nivel de transacciones.

    EQUILIBRIO ENTRE USABILIDAD, RENDIMIENTO, COSTE Y SEGURIDAD

Por su propia naturaleza, la Web es un lugar peligroso. Este medio está diseñado para
permitir que numerosos usuarios soliciten servicios desde sus equipos. La mayor parte de
estas peticiones realizan peticiones de páginas Web perfectamente legítimas, pero al conectar
sus equipos a internet también existe la posibilidad de que la gente realice otros tipos de
conexiones.

Aunque resulta tentador asumir que es apropiado establecer el nivel de seguridad, más alto,
no suele ser así. Si se desea estar completamente protegido, tendrá que colocar todos los
equipos en una caja fuerte sin conexión a la red. Para que los equipos resulten accesibles se
puedan utilizar, es necesario rebajar el nivel de seguridad de alguna manera.
Se debe buscar el equilibrio entre la seguridad, la usabilidad, el coste y el rendimiento. Si se
aumenta la seguridad de un servicio se puede reducir su capacidad de uso, por ejemplo, al
limitar lo que puede hacer la gente o pedir que se identifiquen. El incremento de la seguridad
también puede reducir el nivel de rendimiento de los equipos. La ejecución de software para
lograr que el sistema resulte más seguro (como sistemas de encriptación y detección de
intrusos, escáneres de virus y operaciones de registros de usuario) absorbe recursos. Se
necesita mucho más potencial de procesamiento para suministrar una sesión cifrada, como
una conexión SSL a un sitio Web, que una sesión normal. La pérdida de rendimiento se puede
compensar con la adquisición de equipos o hardware más rápido que este especialmente
diseñado para operaciones de encriptación.
El rendimiento, la usabilidad, el coste y la seguridad se pueden considerar como objetivos
contrapuestos. Se deberán examinar los pros y los contras de cada opción y tomar una
decisión que logre un compromiso en función del valor de la información, del presupuesto, de
la cantidad de visitas esperadas y de los obstáculos que considere que aceptaran los usuarios
legítimos.

    CREAR UNA POLÍTICA DE SEGURIDAD

Una política de seguridad es un documento que describe
      La filosofía general sobre seguridad en una organización
      Que se debe proteger: software, hardware y datos
      Quien es responsable de la protección de estos elementos


                                                                                       Página 22
UNIDAD II: DESARROLLO DE APLICACIONES WEB

        Estándares de seguridad e indicadores para medir el cumplimiento de dichos
        estándares
A la hora de desarrollar la política de seguridad se pueden aplicar las mismas reglas
utilizadas para escribir un conjunto de requisitos de software. En esta política no debería
hablarse de implementaciones o soluciones, si no de requisitos de seguridad y objetivos
dentro del entorno. Y no debería actualizarse a menudo.

Se debería crear un documento en el que se establezcan las directrices utilizadas para medir
el cumplimiento de la política de seguridad en un entorno dado. Se pueden establecer
directrices diferentes para las distintas partes de la organización. Sería como un documento
de diseño o un procedimiento manual en el que se recoja que se está haciendo para garantizar
el nivel de seguridad requerido.

    PRINCIPIO DE AUTENTICACIÓN

    El objetivo de la autenticación es demostrar que alguien es quien dice ser. Existen muchas
formas de suministrar autenticación pero como en el caso de muchas medidas de seguridad,
cuanto más seguro son los métodos más problemáticos resultan de utilizar.
    Las técnicas de autenticación incluyen el uso de contraseñas, firmas digitales, medidas
biométricas mediante escáneres de huellas y medidas que implican el uso de hardware como
tarjetas inteligentes. En la Web solo se utilizan dos de manera extendida: las contraseñas y
las firmas digitales.
    Las medidas biométricas y la mayor parte de las soluciones de hardware implican el uso
de dispositivos de entrada especiales, lo que limitaría el acceso a aquellos usuarios
autorizados con computadoras equipados. Esta opción podría resultar aceptable o incluso
deseable para obtener acceso a los sistemas internos de una organización, pero reduce gran
parte de las ventajas de permitir el acceso al sistema en la Web.
    Las contraseñas resultan fáciles de implementar, sencillas de utilizar y no requieren el uso
de dispositivos de entrada especiales. Suministran un determinado nivel de autenticación
pero es posible que resulten insuficientes para sistemas de alta seguridad.
    El concepto de una contraseña es sencillo. El usuario y el sistema conocen la contraseña. Si
otro visitante afirma ser un usuario y conoce su contraseña, el sistema lo aceptará. Este
sistema resulta seguro siempre y cuando nadie más sepa o pueda adivinar la contraseña. Las
contraseñas presentan en sí mismas varios puntos débiles y no suministran autenticación
segura.

    FUNDAMENTOS DE LA ENCRIPTACIÓN
Un algoritmo de encriptación es un proceso matemático que transforma información en una
cadena aparentemente aleatoria de datos.

Los datos de los que se parte son textos sin procesar, aun que no es importante para el
proceso lo que represente la información (que se trate de texto o de otro tipo de datos). La
información cifrada se conoce como texto encriptado, aunque se parezca poco a un texto en la
mayor parte de los casos. El texto que se desea cifrar se introduce en un motor de
encriptación, que podría ser un programa informático. El motor devuelve el texto encriptado.




                                  Encriptación de mensajes

                                                                                      Página 23
UNIDAD II: DESARROLLO DE APLICACIONES WEB


Muchas contraseñas se almacenan utilizando un algoritmo de encriptación de una sola
dirección. Para poder determinar si una contraseña introducida resulta correcta, no es
necesario descifrar la contraseña almacenada. En su lugar, bastara con cifrar la contraseña
introducida y compararla con la versión almacenada, esta es mecanismo utilizado con la
función sha1() de PHP.

Muchos procesos de encriptación se pueden invertir, aunque no todos. El proceso inverso al
encriptación se conoce como decriptación. En la siguiente figura se muestra un proceso de
encriptación de doble sentido.




El proceso de encriptación toma texto sin procesar y lo transforma en texto cifrado con
aspecto aleatorio. El proceso de decriptación toma el texto encriptado y lo transforma en el
texto original.

La criptografía tiene unos 4000 años de antigüedad, pero alcanzo la mayoría de edad en la
segunda guerra mundial. Su crecimiento desde entonces ha seguido de cerca al desarrollo de
las redes de computadoras. En un principio solo era utilizada por las instituciones militares y
organizaciones financieras. En los años 70 se extendió su uso y en los años 90 se hizo
omnipresente. En los últimos años, la encriptación ha pasado de ser un concepto que solo la
gente conocía por las películas de espías y de la segunda guerra mundial a convertirse en algo
de lo que se habla en los periódicos y se utiliza cada vez que se compra algo a través de
navegadores Web.

Existen muchos algoritmos de encriptación disponibles. Algunos utilizan una clave secreta o
privada, y otros, utilizan una clave pública y una clave privada distinta.

Encriptación de la clave privada
       La encriptación de la clave privada se basa en usuarios autorizados que conocen o
disponen de acceso a una clave. Esta clave debe mantenerse en secreto ya que de lo contrario
los mensaje cifrados podrían ser leídos por personas no autorizadas como se muestra en al
figura anterior, tanto el remitente (la persona que cifra el mensaje) como el receptor (el que
descifra el mensaje) tienen la misma clave. El algoritmo de clave secreta más utilizado es
DES (del ingles Data Ecryptation Stanar, Estandar de Encriptación de Datos). Fue
desarrollado por IBM en los años 70 y fue adoptado como el estándar americano para
comunicaciones comerciales y gubernamentales no clasificadas. La velocidad de las
computadoras ha aumentado mucho desde entonces y DES ha quedado obsoleto desde al
menos 1998. Otros sistemas de claves secretas conocidos son RC2, RC4, RC5. Triple DES e
IDEA. El sistema triple DES resulta bastante seguro (paradójicamente, este sistema es dos
veces más seguro que DES; si se necesita un sistema tres veces más seguro, se puede escribir
un programa que implemente algoritmo DES quíntuple). Utiliza el mismo algoritmo DES, pero


                                                                                     Página 24
UNIDAD II: DESARROLLO DE APLICACIONES WEB

se aplica tres veces con hasta tres claves diferentes. El mensaje de texto se cifra con la primera
clave, se descifra con la segunda y se vuelve a cifrar con la tercera.
Uno de los defectos de la encriptación con clave secreta es que para enviar un mensaje seguro
a alguien, es necesario disponer de una forma segura de enviar una clave, ¿por qué no
utilizarla para enviar el mensaje? Afortunadamente, en 1976 se produjo un avance
significativo cuando diffie y hellman publicaron el primer método de clave pública.

Encriptación de clave pública
        La encriptación de clave pública se basa en dos claves, una clave pública y una clave
privada. Como se ilustra en la siguiente figura, la clave pública se utiliza para cifrar mensajes
y la clave privada para descifrarlos.
 La ventaja de este sistema es que la clave pública, como su nombre indica, se puede distribuir
públicamente. Todo el mundo al que se le entregue la clave pública puede enviar un mensaje
seguro al receptor, mientras se tenga en secreto la clave privada, solo el receptor podrá
descifrar el mensaje.




     FIRMAS DIGITALES
Las firmas digitales están relacionadas con la criptografía de clave pública, pero invierten los
papeles de las claves públicas y privadas. Un remitente puede cifrar y firmar digitalmente un
mensaje con su clave secreta. Cuando se recibe el mensaje, el receptor puede descifrarlo con la
clave secreta del remitente. Como el remitente es la única persona con acceso a la clave
secreta, el receptor puede estar bastante seguro de la procedencia del mensaje y de que no se
ha alterado.
Las firmas digitales resultan muy útiles. Garantizan la procedencia de los mensajes y
dificultan el rechazo del envió por parte del remitente. De todos modos, es importante tener
en cuenta, que aunque el mensaje se ha cifrado, cualquier persona que tenga la clave publica
puede leerlo. Si bien se utilizan las mismas técnicas y claves, la finalidad de uso de la
encriptación en este caso es impedir la modificación de los mensajes y su repudio, no su
lectura.
Como el cifrado de clave publica resulta bastante lento en el caso de mensajes de gran tamaño,
se suele utilizar otro tipo de algoritmo, llamado función hash, para mejorar la eficacia. La
función hash calcula un mensaje o valor hash para cualquier mensaje que se le indique. El
valor generado por el algoritmo no es importante. Lo importante es que el resultado sea fijo,
es decir, que sea el mismo cada vez que se utiliza una entrada dada, que sea pequeño y que el
algoritmo sea rápido.

    CERTIFICADOS DIGITALES
La posibilidad de verificar que un mensaje no se ha alterado y que procede de un usuario o de
un equipo dado es un gran avance. Para las interacciones comerciales, resultaría incluso mejor
disponer de la posibilidad de vincular a dicho usuario o servidor a una entidad legal real como

                                                                                        Página 25
UNIDAD II: DESARROLLO DE APLICACIONES WEB

una persona o compañía. Un certificado digital combina una clave pública con los detalles de
una organización o individuo en un formato digital. En un certificado, se tiene la clave pública
de otra parte, por si se quiere enviar un mensaje cifrado y tener los detalles de la otra parte
que podrá estar seguro de que no se ha alterado.

Los certificados suministran una estructura de confianza. Si se confía en la CA, se puede
confiar en aquellas partes en las que confía la CA y a su vez en aquellas partes en las que
confía la parte certificada.

Los certificados digitales se suele utilizar para conferir un aire de respetabilidad a un sitio
Web de comercio electrónico. Con un certificado emitido por una CA conocida, los
navegadores Web pueden establecer conexiones SSL al sitio sin generar cuadros de dialogo de
advertencia. Los servidores Web que permite conexiones SSL se suelen llamar servidores Web
seguros.

     SERVIDORES WEB SEGUROS
Se puede utilizar el servidor Web apache, el servidor IIS de Microsoft o cualquier otro
servidor Web comercial para establecer comunicaciones seguras con navegadores a través
de SSL. Apache permite utilizar el sistema operativo UNIX, que suelen resultar más fiables
pero más difíciles de configurar que IIS. El servidor apache se puede utilizar en una
plataforma Windows. El uso de SSL sobre IIS implica sencillamente instalar IIS, generar un par
de claves e instalar el certificado. El uso de SSL en apache requiere la instalación de tres
paquetes diferentes: Apache, Mod_SSL y OpenSSL.

     AUDITORIAS Y REGISTROS
El sistema operativo permitirá registrar todo tipo de evento. Los eventos en los que se puede
estar interesado desde el punto de vista de la seguridad incluyen errores de red, acceso a
archivos de datos, etc.
Los archivos de registro pueden servir de ayuda para detectar comportamientos erróneos o
malintencionados cuando tienen lugar. También se puede utilizar para determinar cómo tuvo
lugar un problema o una intrusión si se examina tras observar problemas. Los archivos de
registro presentan dos problemas principales: el tamaño y la veracidad.
 Si se establecen los criterios para detectar y registrar problemas en el nivel de mayor
paranoia, se obtendrán registros gigantescos que resultan muy difíciles de examinar. Para
trabajar con archivos de registro de gran tamaño, se tendrá que recurrir a una herramienta
existente o derivar algunas secuencias de comandos de la política de seguridad establecida
para realizar búsquedas de eventos “interesantes” dentro de los registros.

     CORTAFUEGOS
El objetivo de los cortafuegos es alejar una red del mundo exterior. De la misma forma que los
cortafuegos de un edificio o de un coche impiden que el fuego se extienda a otros
compartimientos, los cortafuegos de red impiden que el caos se extienda por una red.
Los cortafuegos están diseñados para proteger los equipos de una red del mundo exterior.
Filtran y rechazan el tráfico que no cumple las reglas establecidas en ellos. Restringe las
actividades de la gente y los equipos situados fuera de los cortafuegos. En ocasiones, los
cortafuegos también se pueden utilizar para restringir las actividades de los equipos incluidos
en su interior. Uno cortafuegos puede limitar los protocolos de red que se pueden utilizar, los
host a los que se pueden conectar o forzar el uso de un servidor proxy para reducir costes en
términos de ancho de banda.



                                                                                      Página 26
UNIDAD II: DESARROLLO DE APLICACIONES WEB

     COPIA DE SEGURIDAD DE LOS DATOS
No se puede subestimar la importancia de las copias de seguridad en ningún plan de
recuperación de desastres. El hardware y los inmuebles se pueden asegurar y sustituir, o los
sitios alojados en cualquier host, pero si el software Web personal desaparece, ninguna
entidad aseguradora podrá sustituirlo.
Se deben hacer copias de seguridad periódicas de todos los componentes del sitio Web
(páginas estáticas, secuencias de comandos y bases de datos). La frecuencia depende del
dinamismo del sitio. Si se trata de un sitio completamente estático, bastara con hacer una
copia cuando se modifique. Sin embargo, el tipo de sitio que se está tratando es probable que
cambie con frecuencia, en especial si se reciben pedidos en línea. La mayor parte de los sitios
con un tamaño razonable deben alojarse en un servidor con un sistema RAID (del ingles
Redundant Array of Inexpensive Disk, Matriz redundante de discos independientes) que
admite funciones de réplica. De esta forma, queda cubierta la probabilidad de que ocurra un
fallo en el disco duro. sin embargo, se debe considerar que ocurriría en una situación que
afecta a la matriz, al equipo a al edificio entero.
La frecuencia con la que se deben realizarlas está en función con el volumen de
actualización. Estas copias de seguridad deberían almacenarse en un lugar diferente y a ser
posible en un lugar distinto y seguro contra incendios, robos o desastres naturales.

     SEGURIDAD FISICA
Las amenazas de seguridad consideradas hasta el momento hacen referencia a elementos
intangibles como el software, pero no se debería descuidar la seguridad física de un sistema.
Se debe prever un sistema de aire acondicionado y sistemas de protección contra el fuego,
personas (torpes o criminales), fallos en el suministro eléctrico y fallos en la red.
El sistema debería estar protegido bajo llave en un lugar seguro. El lugar concreto dependerá
de cada caso pero puede ser una habitación, una jaula o un armario. Solo se debería conceder
permiso de acceso a esta habitación al personal pertinente. El personal no autorizado podría,
voluntaria o involuntariamente, desconectar los cables o intentar eludir los mecanismos de
seguridad utilizando un disco de reinicio. Los rociadores de agua pueden causar tanto daño a
los componentes electrónicos como el fuego. Los sistemas para la extinción de incendios
deben utilizar alternativas poco dañinas como el gas argón o el dióxido de carbono.
 En determinados lugares, se producen breves cortes de energía eléctrica de manera
habitual. En sitios con climatologías extremas o cables enterrados se suelen producir cortes
de larga duración. Si el funcionamiento continuo del sistema es un factor importante, se
debería utilizar un sistema de alimentación ininterrumpible. Los cortes de suministro de larga
duración requieren un generador que alimente el sistema de refrigeración y los equipos.




                                                                                     Página 27

Más contenido relacionado

La actualidad más candente (18)

Arquitectura- Programacion WEB
Arquitectura- Programacion WEBArquitectura- Programacion WEB
Arquitectura- Programacion WEB
 
I introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_coI introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_co
 
Web services
Web servicesWeb services
Web services
 
Arquitectura web
Arquitectura webArquitectura web
Arquitectura web
 
Tutor Java Web
Tutor Java WebTutor Java Web
Tutor Java Web
 
CV Bexandy Rodriguez
CV Bexandy RodriguezCV Bexandy Rodriguez
CV Bexandy Rodriguez
 
Clase 1 Introducción al Desarrollo Web
Clase 1 Introducción al Desarrollo WebClase 1 Introducción al Desarrollo Web
Clase 1 Introducción al Desarrollo Web
 
182000
182000182000
182000
 
Red coorporativa
Red coorporativaRed coorporativa
Red coorporativa
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con java
 
Los sistemas de gestión de contenidos
Los sistemas de gestión de contenidosLos sistemas de gestión de contenidos
Los sistemas de gestión de contenidos
 
Manejo conexbd
Manejo conexbdManejo conexbd
Manejo conexbd
 
WPF
WPFWPF
WPF
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Wpf
WpfWpf
Wpf
 
Clase 4 JavaScript Básico
Clase 4 JavaScript BásicoClase 4 JavaScript Básico
Clase 4 JavaScript Básico
 
Wpf
WpfWpf
Wpf
 
Programacion web
Programacion webProgramacion web
Programacion web
 

Destacado

Unidad didáctica tpack informática-josefa molina
Unidad didáctica tpack informática-josefa molinaUnidad didáctica tpack informática-josefa molina
Unidad didáctica tpack informática-josefa molinajosefa molina
 
Jackson Gonzalez
Jackson GonzalezJackson Gonzalez
Jackson Gonzalezupel
 
Unidad didáctica
Unidad didácticaUnidad didáctica
Unidad didácticamartappa
 
subneteo de redes
subneteo de redessubneteo de redes
subneteo de redesalexgrz81
 
Unidad Didáctica - Clase de Informática en secundaria
Unidad Didáctica - Clase de Informática en secundariaUnidad Didáctica - Clase de Informática en secundaria
Unidad Didáctica - Clase de Informática en secundariaMamenchu99
 
Diseño de paginas web clase 1 lista
Diseño de paginas web clase 1 listaDiseño de paginas web clase 1 lista
Diseño de paginas web clase 1 listaJenny Palacios
 
Guía de Presentación de charlas motivacionales a Jóvenes Estudiantes
Guía de Presentación de charlas motivacionales a Jóvenes EstudiantesGuía de Presentación de charlas motivacionales a Jóvenes Estudiantes
Guía de Presentación de charlas motivacionales a Jóvenes EstudiantesCADI F1, C.A
 
Practica tema 3 unidad didactica música "Figuras y notas musicales"
Practica tema 3  unidad didactica música "Figuras y notas musicales"Practica tema 3  unidad didactica música "Figuras y notas musicales"
Practica tema 3 unidad didactica música "Figuras y notas musicales"Juan José Candel Gómez
 
Tema 7. Diseño unidad didáctica
Tema 7. Diseño unidad didácticaTema 7. Diseño unidad didáctica
Tema 7. Diseño unidad didácticaguest4da5c2
 
Guia de diversificacion y programación curricular 2012 final
Guia de diversificacion y programación curricular 2012 finalGuia de diversificacion y programación curricular 2012 final
Guia de diversificacion y programación curricular 2012 finalelias melendrez
 

Destacado (19)

Diseño de interfaz de usuario
Diseño de interfaz de usuarioDiseño de interfaz de usuario
Diseño de interfaz de usuario
 
Luis bernal ud_cier_centro
Luis bernal ud_cier_centroLuis bernal ud_cier_centro
Luis bernal ud_cier_centro
 
Unidad didáctica tpack informática-josefa molina
Unidad didáctica tpack informática-josefa molinaUnidad didáctica tpack informática-josefa molina
Unidad didáctica tpack informática-josefa molina
 
Jackson Gonzalez
Jackson GonzalezJackson Gonzalez
Jackson Gonzalez
 
Módulo de Inf. Paginas Web..
Módulo de Inf. Paginas Web..Módulo de Inf. Paginas Web..
Módulo de Inf. Paginas Web..
 
2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp
 
Unidad didáctica
Unidad didácticaUnidad didáctica
Unidad didáctica
 
subneteo de redes
subneteo de redessubneteo de redes
subneteo de redes
 
Unidad Didáctica - Clase de Informática en secundaria
Unidad Didáctica - Clase de Informática en secundariaUnidad Didáctica - Clase de Informática en secundaria
Unidad Didáctica - Clase de Informática en secundaria
 
Diseño de paginas web clase 1 lista
Diseño de paginas web clase 1 listaDiseño de paginas web clase 1 lista
Diseño de paginas web clase 1 lista
 
Subneteo redes
Subneteo redesSubneteo redes
Subneteo redes
 
Unidad DidáCtica Web 2 0
Unidad DidáCtica Web 2 0Unidad DidáCtica Web 2 0
Unidad DidáCtica Web 2 0
 
Guía de Presentación de charlas motivacionales a Jóvenes Estudiantes
Guía de Presentación de charlas motivacionales a Jóvenes EstudiantesGuía de Presentación de charlas motivacionales a Jóvenes Estudiantes
Guía de Presentación de charlas motivacionales a Jóvenes Estudiantes
 
Practica tema 3 unidad didactica música "Figuras y notas musicales"
Practica tema 3  unidad didactica música "Figuras y notas musicales"Practica tema 3  unidad didactica música "Figuras y notas musicales"
Practica tema 3 unidad didactica música "Figuras y notas musicales"
 
Tema 7. Diseño unidad didáctica
Tema 7. Diseño unidad didácticaTema 7. Diseño unidad didáctica
Tema 7. Diseño unidad didáctica
 
SUBNETEO DE REDES
SUBNETEO DE REDESSUBNETEO DE REDES
SUBNETEO DE REDES
 
Guia de diversificacion y programación curricular 2012 final
Guia de diversificacion y programación curricular 2012 finalGuia de diversificacion y programación curricular 2012 final
Guia de diversificacion y programación curricular 2012 final
 
Diseño de la interfaz de usuario
Diseño de la interfaz de usuarioDiseño de la interfaz de usuario
Diseño de la interfaz de usuario
 
Unidad didactica
Unidad didacticaUnidad didactica
Unidad didactica
 

Similar a Unidad ii desarrollo de aplicaciones web

Arquitectura cliente servidor rodofo jacobo rodriguez
Arquitectura cliente servidor rodofo jacobo rodriguezArquitectura cliente servidor rodofo jacobo rodriguez
Arquitectura cliente servidor rodofo jacobo rodriguezTito Jacobo Rodriguez
 
Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)BBRYANN
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-javaGilberto Garcia Zavaleta
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"Erick Cerna
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.castlellanos
 
2 aplicaciones web
2 aplicaciones web2 aplicaciones web
2 aplicaciones webUVM
 
Unidad 4
Unidad 4Unidad 4
Unidad 4mi casa
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGEfrain Criss
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 

Similar a Unidad ii desarrollo de aplicaciones web (20)

Arquitectura cliente servidor rodofo jacobo rodriguez
Arquitectura cliente servidor rodofo jacobo rodriguezArquitectura cliente servidor rodofo jacobo rodriguez
Arquitectura cliente servidor rodofo jacobo rodriguez
 
Plataformas cliente servidor
Plataformas cliente servidorPlataformas cliente servidor
Plataformas cliente servidor
 
Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
2 aplicaciones web
2 aplicaciones web2 aplicaciones web
2 aplicaciones web
 
Tema 6
Tema 6Tema 6
Tema 6
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Arquitectura Web
Arquitectura WebArquitectura Web
Arquitectura Web
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
La web 2.0
La web 2.0La web 2.0
La web 2.0
 
Soa
SoaSoa
Soa
 

Último

ficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primariaficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primariamichel carlos Capillo Dominguez
 
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionUNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionCarolVigo1
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfNELLYKATTY
 
Tecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxTecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxJulioSantin2
 
plan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaplan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaElizabeth252489
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..La Gatera de la Villa
 
PPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxPPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxKarenSepulveda23
 
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍAPROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍAJoaqunSolrzano
 
Revista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaRevista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaTatiTerlecky1
 
Anuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaAnuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaIvannaMaciasAlvarez
 
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdfNELLYKATTY
 
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfAnna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfSaraGabrielaPrezPonc
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Ivie
 
Programación Anual 2024 - CIENCIAS SOCIALES.docx
Programación Anual 2024  - CIENCIAS SOCIALES.docxProgramación Anual 2024  - CIENCIAS SOCIALES.docx
Programación Anual 2024 - CIENCIAS SOCIALES.docxJhordanBenitesSanche1
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaIGNACIO BALLESTER PARDO
 
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdfdiana593621
 

Último (20)

ficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primariaficha de aplicacion para estudiantes El agua para niños de primaria
ficha de aplicacion para estudiantes El agua para niños de primaria
 
Conducta ética en investigación científica.pdf
Conducta ética en investigación científica.pdfConducta ética en investigación científica.pdf
Conducta ética en investigación científica.pdf
 
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionUNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
 
Tecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxTecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptx
 
plan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaplan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primaria
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
 
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
 
PPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxPPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptx
 
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍAPROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
 
Actividad de bienestar docente 2016 Pereira
Actividad de bienestar docente 2016 PereiraActividad de bienestar docente 2016 Pereira
Actividad de bienestar docente 2016 Pereira
 
Revista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaRevista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección ediba
 
VISITA DE ESTUDO À CRUZ VERMELHA _
VISITA DE ESTUDO À CRUZ VERMELHA                   _VISITA DE ESTUDO À CRUZ VERMELHA                   _
VISITA DE ESTUDO À CRUZ VERMELHA _
 
Anuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaAnuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad pública
 
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
 
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfAnna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023
 
Programación Anual 2024 - CIENCIAS SOCIALES.docx
Programación Anual 2024  - CIENCIAS SOCIALES.docxProgramación Anual 2024  - CIENCIAS SOCIALES.docx
Programación Anual 2024 - CIENCIAS SOCIALES.docx
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
 
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
 

Unidad ii desarrollo de aplicaciones web

  • 1. UNIDAD II: DESARROLLO DE APLICACIONES WEB INSTITUTO TECNOLÓGICO SUPERIOR DE CHICONTEPEC INGENIERÍA EN SISTEMAS COMPUTACIONALES SEPTIMO SEMESTRE GRUPO UNO PROGRAMACION WEB LIC. SAID JAIR GUERRA ESCUDERO UNIDAD II: DESARROLLO DE APLICACIONES WEB EQUIPO: JAPHET ING. MARICELA DE LA CRUZ MARTINEZ ING. ZACARIAS MARQUEZ CRUZ ING. EPIFANIO MARTINEZ HERNANDEZ ING. DAVID MARTINEZ DE LA CRUZ Página 1
  • 2. UNIDAD II: DESARROLLO DE APLICACIONES WEB INDICE 2.1 Arquitectura de las aplicaciones Web ................................................................................... 03 2.2 Lenguajes de programación del lado del cliente ............................................................... 06 2.3 Lenguajes de programación del lado del servidor ............................................................ 07 2.4 Ambientes para el desarrollo de aplicaciones Web ......................................................... 08 2.5 Metodologías para el desarrollo de aplicaciones Web .................................................... 08 2.6 Aspectos de seguridad ................................................................................................................. 16 Página 2
  • 3. UNIDAD II: DESARROLLO DE APLICACIONES WEB 2.1 Arquitectura de las aplicaciones Web. En la imagen que mostramos a continuación se puede observar un esquema simplificado de la topología de Internet. Por un lado se tiene la red de la empresa (Intranet), donde se tiene un Servidor Web en el cual se publican las páginas Web. Este servidor puede ser también el servidor de base de datos, o se puede tener un servidor específico para realizar esta tarea. Los usuarios de Internet tendrán acceso a las páginas que sean públicas y podrán acceder a los datos almacenados en la empresa a través de páginas dinámicas. Por otro lado, los usuarios de la empresa (Intranet) podrán acceder a las páginas públicas y a las páginas privadas de la empresa TIPOS DE ARQUITECTURAS Página 3
  • 4. UNIDAD II: DESARROLLO DE APLICACIONES WEB Arquitectura de Dos Capas La arquitectura tradicional de cliente/servidor también es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y corre en una PC o estación de trabajo y envía solicitudes a un servidor para ejecutar operaciones complejas. Por ejemplo, una estación de trabajo utilizada como cliente puede correr una aplicación de interfaz de usuario que interroga a un servidor central de bases de datos. Ventajas del Sistema de Dos Capas: El desarrollo de aplicaciones en un ambiente de dos capas es mucho mas rápido que en ambientes anteriores, pero no es necesariamente mas rápido que con el nuevo ambiente de tres capas. Las herramientas para el desarrollo con dos capas son robustas y evaluadas. Las técnicas de prototipo se emplean fácilmente. Las soluciones de dos capas trabajan bien en ambientes no dinámicos estables, pero no se ejecutan bien en organizaciones rápidamente cambiantes. Desventajas del Sistema de Dos Capas:  Los ambientes de dos capas requieren control excesivo de las versiones y demandan esfuerzo de distribución de la aplicación cuando se les hacen cambios. Esto se debe al hecho de que la mayoría de la aplicación lógica existe en la estación de trabajo del cliente.  La seguridad del sistema en un diseño de dos capas es compleja y a menudo requiere administración de las bases de datos; esto es debido al número de dispositivos con acceso directo al ambiente de esas bases de datos.  las herramientas del cliente y de la base de datos, utilizadas en diseños de dos capas, constantemente están cambiando. La dependencia a largo plazo de cualquier herramienta, puede complicar el escalamiento futuro o las implementaciones. Página 4
  • 5. UNIDAD II: DESARROLLO DE APLICACIONES WEB Arquitectura de Tres Capas La arquitectura de tres capas es un diseño reciente que introduce una capa intermedia en el proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas. En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura basada en Web transforma la interfaz de búsqueda existente (el explorador de Web), en la interfaz del usuario final. Ventajas de la Arquitectura de Tres Capas: Las llamas de la interfaz del usuario en la estación de trabajo, al servidor de capa intermedia, son más flexibles que en el diseño de dos capas, ya que la estación solo necesita transferir parámetros a la capa intermedia. Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC. El código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está diseñado en formato modular. La separación de roles en tres capas, hace más fácil reemplazar o modificar una capa sin afectar a los módulos restantes. Desventajas de las Arquitecturas de Tres Capas y basadas en Web:  Los ambientes de tres capas pueden incrementar el tráfico en la red y requiere más balance de carga u tolerancia a las fallas.  Los exploradores actuales no son todos iguales. La estandarización entre diferentes proveedores ha sido lenta en desarrollarse. Muchas organizaciones son forzadas a escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas ventajas. Página 5
  • 6. UNIDAD II: DESARROLLO DE APLICACIONES WEB 2.2 Lenguajes de programación del lado del cliente. HTML El lenguaje llamado HTML indica al navegador donde colocar cada texto, cada imagen o cada video y la forma que tendrán estos al ser colocados en la pagina. El lenguaje consta de etiquetas que tienen esta forma < B> o < P>. Cada etiqueta significa una cosa, por ejemplo < B> significa que se escriba en negrita (bold) o < P> significa un párrafo, < A> es un enlace, etc. Casi todas las etiquetas tienen su correspondiente etiqueta de cierre, que indica que a partir de ese punto no debe de afectar la etiqueta. Por ejemplo < /B> se utiliza para indicar que se deje de escribir en negrita. Así que el HTML no es más que una serie de etiquetas que se utilizan para definir la forma o estilo que queremos aplicar a nuestro documento. JAVASCRIPT Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web. Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Su uso se basa fundamentalmente en la creación de efectos especiales en las páginas y la definición de interactividades con el usuario. Las sentencias escritas en javascript se encapsulan entre las etiquetas < script> y < /script>. por ejemplo, si en el código de una página Web incluimos la sentencia Ejemplo < script> window.alert("Bienvenido a mi sitio web. Gracias...") < /script> al abrir la pagina con el navegador se nos mostrara una ventana de bienvenida APPLETS DE JAVA Es otra manera de incluir código a ejecutar en los clientes que visualizan una página web. Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página. Los Applets de Java están programados en Java y precompilados, es por ello que la manera de trabajar de estos varia un poco con respecto a los lenguajes de script como Javascript. Los applets son más difíciles de programar que los scripts en Javascript y requerirán unos conocimientos básicos o medios del lenguaje Java. La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenador donde se ejecutan. Además, Java es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser mayor. Como desventajas en relación con Javascript cabe señalar que los applets son más lentos de procesar y que tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos. Es por ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc. Página 6
  • 7. UNIDAD II: DESARROLLO DE APLICACIONES WEB VISUAL BASIC SCRIPT Es un lenguaje de programación de scripts del lado del cliente, pero solo compatible con Internet Explorer. Es por ello que su utilización esta desaconsejada a favor de Javascript. Está basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. Tanto su sintaxis como la manera de trabajar están muy inspirados en el. Sin embargo, no todo lo que se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este último es una versión reducida del primero. El modo de funcionamiento de Visual Basic Script para construir efectos especiales en páginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder también son los mismos: el navegador. FLASH Flash es una tecnología, y un programa, para crear efectos especiales en páginas web. Con Flash también conseguimos hacer páginas dinámicas del lado del cliente. Flash en realidad no es un lenguaje; Sin embargo, si tuviéramos que catalogarlo en algún sitio quedaría dentro del ámbito de las páginas dinámicas de cliente. Para visualizar las "películas" Flash, nuestro navegador debe tener instalado un programita (plug-in) que le permita visualizarlas. CSS CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a las CSS somos mucho mas dueños de los resultados finales de la página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra, fondos, colores... Incluso podemos definir nuestros propios estilos en un archivo externo a nuestras páginas; así, si en algún momento queremos cambiar alguno de ellos, automáticamente se nos actualizaran todas las paginas vinculadas de nuestro sitio. CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. 2.3 Lenguajes de programación del lado del servidor. CGS Es el sistema más antiguo que existe para la programación de las páginas dinámicas de servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta. Los CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como C, C++ o Visual Basic pueden ser también empleados para construirlos. PERL Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También desde otros lenguajes podremos ejecutar código Perl. Página 7
  • 8. UNIDAD II: DESARROLLO DE APLICACIONES WEB ASP ASP (Active Server Pages) es la tecnología desarrollada por Microsoft para la creación de páginas dinámicas del servidor. ASP se escribe en la misma página web, utilizando el lenguaje Visual Basic Script o Jscript (Javascript de Microsoft). PHP PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación. JSP JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como Paginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java. Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual. 2.4 Ambientes para el desarrollo de aplicaciones Web. Los IDE (ambientes integrados de desarrollo) para aplicaciones Web son muy numerosos. Considerar los que permitan trabajar con los diferentes lenguajes para Web. Algunos son específicos para lenguajes del lado del servidor. Por ejemplo, Visual Studio solo soporta ASP.NET del lado del servidor. Existen Ideas de buena cantidad, libres y gratuitos de buena calidad. Algunos ejemplos de IDE para Web: Microsoft Visual Studio. Microsoft Web Developer Express. Mono (para ASP.NET). NetBeans. Jbuilder. Eclipse. 2.5 Metodologías para el desarrollo de aplicaciones Web. Los sitios Web se presentan de todas formas y modelos, desde sencillas página a megasitios que gestionan los negocios para empresas a nivel mundial, el proceso de desarrollar un sitio implica los mismos pasos básicos: CONCEPTUALIZAR E INVESTIGAR Esta primera fase es emocionante. Se empieza con una idea (“sitio de venta en línea”, “ambiente virtual de aprendizaje”, “banca en línea”, etc.) y luego realizar una lluvia de ideas sobre cómo se va a manifestar como sitio Web. Este es el momento de las listas y bocetos, pizarras y cuadernos. ¿Qué va hacer emociónate? ¿Qué va haber en la primera pagina? Página 8
  • 9. UNIDAD II: DESARROLLO DE APLICACIONES WEB No se debe preocupar por el ambiente de desarrollo Web hasta que se tenga las ideas y estrategias juntas. Esto implica formular a los clientes (o así mismo) una serie de preguntas referidas a recursos, objetivos y lo más importante, los usuarios. Muchas grandes empresas de diseño y desarrollo Web dedican más tiempo a investigar e identificar las necesidades del cliente que cualquier otro nivel de producción. Para sitios grandes, este paso puede incluir casos de estudios, entrevistas, y un amplio estudio de mercado. Es posible que no se necesite dedicar esa cantidad de esfuerzo (o dinero) a la preparación de un sitio Web, pero sigue siendo acertado tener claro las expectativas y recursos al principio del proceso, particularmente cuando se trata de trabajar de acuerdo a un presupuesto. Una muestra de las preguntas que se podrían formular a los clientes o a uno mismo, durante la fase de investigación del diseño pudriera ser: Estrategias ¿Por qué crea este sitio Web? ¿Qué espera conseguir? ¿Qué ofrece a los usuarios? ¿Qué quiere que los usuarios hagan en su sitio Web? ¿Después de que se hayan marchado? ¿Qué hace volver a sus visitantes? Descripción generan del sitio ¿Qué tipo de sitio es? (¿Meramente proporcional? ¿Una publicación? ¿Un punto de venta? ¿Qué características tendrá? ¿Cuáles son sus mensajes más importantes? ¿Quiénes son sus competidores? ¿Qué hacen bien? ¿Qué se podría mejorar? Audiencia objetivo ¿Quién es su principal audiencia? ¿Tiene experiencia con internet y conocimientos técnicos? ¿Puede haber previsiones de la velocidad de conexión de un usuario medio? ¿Plataforma? ¿Tamaño de monitor? ¿Navegador? ¿Cada cuanto se espera que visiten el sitio? ¿Cuánto tiempo permanecerá durante una visita media? Contenido ¿Quién es responsable de generar el contenido original? ¿Cómo se enviara el contenido? Recursos ¿Qué recursos se ha dedicado al sitio (presupuesto, personal, tiempo)? ¿Requiere el sitio un sistema de gestión de contenido? ¿El mantenimiento se puede gestionar por personal del cliente? ¿Tiene un servidor para su sitio? ¿Ha registrado un nombre de dominio para su sitio? Aspecto grafico ¿Tiene en mente un aspecto para el sitio? Página 9
  • 10. UNIDAD II: DESARROLLO DE APLICACIONES WEB ¿Tiene ya estándares existentes, como logos y colores, que se tengan que incorporar ¿Forma el sitio parte de un sitio más grande o grupos de sitios con estándares de diseño con lo que tiene que coincidir? ¿Qué aspecto tiene otros sitios Web? ¿Qué le gusta de ellos? ¿Qué sitios no le gustan? Para los sitios Web dinámicos, se requiere del diseño de la base de datos que almacenará la información que se procese, siendo necesario después de la investigación diseñar los modelos para su representación como lo es un modelo Entidad-Relación. En la figura se muestra el modelo entidad – relación de una porción de una base de datos de ventas en línea. También se deben obtener el conjunto de tablas que conformarán la base de datos, que para este caso queda de la siguiente manera: categoria(id_cat, Descripcion) producto (id_pro, clave, nombre, precio, existencia, preciov, id_cat) clientes (id_clie, clave, nom, dir, tel) factura (id_fac, fecha) ventas (id_clie, id_pro, id_fac, cantc, pu) administradores (id_ad, nom, dir, tel) CREAR Y ORGANIZAR CONTENIDO La parte más importante de un sitio Web es su contenido. A pesar del ruido sobre tecnologías y herramientas, el contenido sigue siendo el rey de internet. Tiene que haber algo de valor, tanto sea algo de leer, algo que hacer o algo que comprar que atraiga a los visitantes y haga que regresen. Es acertado ser sensible a la necesidad de un buen contenido. Página 10
  • 11. UNIDAD II: DESARROLLO DE APLICACIONES WEB Creación de contenido Cuando se crea un sitio Web para un cliente, se necesita establecer inmediatamente quien será responsable de generar el contenido que va en el sitio. Idealmente, el cliente es responsable de generar su propio contenido y destinara los recursos apropiados para hacerlo. Diseño de la información Una vez que se tiene el contenido o al menos una idea clara del contenido que tendrá el siguiente paso es organizar el contenido para que sea accesible de forma fácil e intuitiva para su audiencia. Nuevamente, este es el momento para las listas y bocetos. Se debe tener todo lo que necesita en el sitio en una mesa. Organizarlo por importancia, categoría, etc. Decidir lo que va en la página principal y lo que se divide en apartados. Pensar en cómo los usuarios esperarían encontrar la información en su sitio y diseñar en base a sus necesidades y suposiciones en mente. El resultado de la fase de diseño de información puede ser un diagrama (a menudo llamado mapa de sitio) que revela la “forma” global del sitio. Las páginas en diagramas normalmente se representan por rectángulos; las flechas indican vínculos entre páginas o secciones del sitio. El mapa del sitio proporciona a los diseñadores una idea de la escala del sitio y como se relacionan las secciones y ayudas en el diseño de navegación. En la figura se muestra el mapa general de un pequeño sitio de ventas en línea que permite el inicio de sesión a dos tipos de usuarios. Es pequeño comparado con los diagramas para sitios corporativos, pero demuestra cómo se representan las paginas y las conexiones entre paginas. No hay nada mejor que lápiz y papel cuando llega al momento de poner en marcha y documentar el proceso creativo. Antes de implementar cualquier cosa no hay mejor forma de Página 11
  • 12. UNIDAD II: DESARROLLO DE APLICACIONES WEB expresar las ideas rápidamente que en un bloc de notas, en una servilletas o pizarra, o cualquier superficie que se encuentre disponible. Se trata de creatividad. DESARROLLAR EL ASPECTO VISUAL Y COMPORTAMIENTO El aspecto visual de un sitio hace referencia a su diseño grafico y apariencia visual global incluido su esquema de color tipografía y estilo de imagen. Dibujar Esta es otra oportunidad para sacar lápices, rotuladores y cuadernos. O quizás se prefiera trabajar las ideas en alguna herramienta de edición grafica (como Photoshop). De cualquier forma, es el momento de ser creativo y probar cosas. El resultado es uno o más bocetos que muestra él estilo visual propuesto para el sitio. Un boceto es normalmente un archivo grafico plano en las dimensiones aproximadas de la ventana del navegador. Cuando es necesario mostrar interactividad (como un efecto), algunos diseñadores utilizan una capa que se puede activar y desactiva para simular el efecto. En algunos casos puede ser necesario crear una página principal prototipo en HTML para mostrar la interactividad y las características animadas. En la fase de dirección artística es para explorar el aspecto que tendrá el sitio, por lo que los bocetos gráficos planos son normalmente adecuados. El proceso de dirección de arte En la mayoría de los trabajos de desarrollo Web profesionales, el cliente recibe dos o tres bocetos que muestran su página principal en varios estilos visuales. En algunos casos, se puede incluir un diseño de segundo o tercer nivel si es importante mostrar cómo se desarrolla el diseño en varios niveles. De forma ideal, se debe contar con una lista de elementos que cada página debe contener, incluidas imágenes obligatorias, elementos de navegación y un manuscrito para el texto. Puede incluso haber un diagrama de la funcionalidad. Página 12
  • 13. UNIDAD II: DESARROLLO DE APLICACIONES WEB Después de revisar los bocetos, el cliente elige uno, a menudo con una lista de cambios, solicitando una nueva ronda de diseño hasta que el diseño final esté aprobado. PRODUCIR UN PROTOTIPO Una vez que el diseño esta aprobado y el documento están listos, el sitio entra en la fase de producción se puede realizar por una persona. Es más común en el diseño Web comercial contar con un equipo de personas que trabajan en tareas especializadas. El departamento de arte utiliza sus herramientas graficas para crear todos los gráficos necesarios para el sitio. El departamento de producción codifica el contenido con HTML y demás lenguajes requeridos, formatea el texto con hojas de estilo. Pueden crear las hojas finales o simplemente plantillas que se rellenan con el contenido en el momento. Los programadores escriben los scripts y aplicaciones del lado del servidor necesarias para que el sitio funcione según lo esperado. Puede haber también elementos multimedia como videos o películas flash. Es decir, todas las partes del sitio se tienen que crear. En algún momento, todas estas piezas se juntan en un sitio. Este no es necesariamente otro paso, sino que más bien es un proceso continuo, como en el diseño de software, el primer prototipo a menudo se denomina la versión “alfa”. Se debería poner disponible únicamente a las personas dentro del equipo Web para su revisión antes de presentárselo al cliente. Después de los cambios, la segunda revisión se denomina “beta”. El cliente debería implicarse en esta fase. En este punto, hay todavía mucho que hacer antes de que el sitio esté listo para llevarse a la Web. Existen también sitios ahí afuera, a menudo aplicaciones Web y servicios, que ponen disponibles sus versiones beta al público o una base limitada de suscriptores con el fin de recibir sus observaciones o comentarios. PROBARLO Todos los sitios Web se tienen que probar antes de que estén listos para el público. Los desarrolladores Web profesionales dedican tiempo y recursos al calendario de producción para realizar pruebas. Tanto formalmente como informalmente, los sitios se deberían probar para funcionalidad básica, rendimiento en diferentes entornos de navegación y facilidad de uso. El sitio se puede probar localmente (en el disco duro) antes de subirse a su lugar definitivo en el servidor Web. También es de utilidad establecer un sitio de pruebas oculto en el servidor de modo que los problemas se puedan resolver en su entorno natural antes de hacerlo público. Comprobación básica de calidad Como mínimo, todos los sitios se deberían comprobar para asegurar de que funcionan. En el negocio del diseño Web, comprobar un sitio en busca de funcionalidad básica es parte de lo que se denomina la fase de control de calidad de la producción. Las siguientes preguntas abordan algunos de los requerimientos mínimos antes de publicar un sitio en la Web.  ¿Está todo el contenido?: asegúrese de que no falta ningún contenido. Página 13
  • 14. UNIDAD II: DESARROLLO DE APLICACIONES WEB  ¿Existen errores tipográficos o errores gramaticales?: la importancia de revisar un texto a veces se pasa por alto, pero los errores en la copia pueden dañar seriamente la credibilidad percibida del sitio.  ¿Funcionan todos los vínculos?: es fácil dejar vínculos sin vincular durante el proceso de producción. También es posible que algunos archivos se hayan movido de sitio y que los vínculos no estén actualizados. Antes de salir a la Web, se debe comprobar que todos los vínculos en las páginas son correctos.  ¿Se muestran todas las imágenes?: Confirmar que todos los archivos gráficos están en el directorio adecuado y que la ruta de acceso correcta se utiliza en los elementos para evitar que falten imágenes.  ¿Funcionan adecuadamente todos los scripts y aplicaciones?: Ejecutar las paginas en algunos escenarios típicos de usuario (completando formularios, comprando un producto, o cualquier otra interacción que tenga sentido para el sitio) para asegurarse de que todo funciona como debería. Prueba del entorno de navegación El sitio se verá en un amplio rango de entornos de navegación que impactara en la forma que tiene y sus funciones. Otra parte de la comprobación de calidad es comprobar las páginas bajo tantas condiciones como sea posible. Normalmente se debe probar el sitio en diferentes sistemas operativos y numerosas versiones de navegador. Un sitio robusto no tendrá ningún problema cuando se pruebe de acuerdo a los siguientes criterios.  ¿Qué aspecto tiene la página en diferentes navegadores?: ¿en otra plataforma?  Los navegadores son desiguales en su soporte de hojas de estilo en cascada, por lo que si se utiliza CSS para el diseño de página, es necesario que se vea en tantos navegadores como sea posible  ¿Cómo funciona el sitio en diferentes navegadores?: ¿en otra plataforma? De forma similar, existen diferencia de navegador en el soporte de script, por lo tanto, es conveniente realizar pruebas de funcionalidad bajo más de una configuración de navegador/plataforma.  ¿Qué les pasa a las paginas cuando la ventana del navegador se hace muy grande o muy pequeña?: ¿Qué pasa si el texto se amplía mucho o se reduce mucho? ¿Puede el sitio soportar una cierta cantidad de ventanas y tamaño de texto? ¿Se sale el contenido de la pantalla? ¿Se divide la página?  ¿Se puede utilizar el sitio en un navegador de solo texto?: ¿Qué verán los usuarios si acceden a su página con un teléfono móvil o quipo similar? Las páginas deberían estar accesibles en todos los dispositivos de navegación. Merece la pena ver el sitio bajo condiciones mínimas para ver si puede realizar alguna modificación para mejorar la experiencia.  ¿Es el sitio útil con los gráficos desactivados?: Algunos usuarios con conexiones más lentas pueden navegar por la Web con gráficos desactivados en el navegador para agilizar la visualización del contenido. Algunos navegadores Página 14
  • 15. UNIDAD II: DESARROLLO DE APLICACIONES WEB muestran el texto alternativo para cada elemento de imagen pero otros no. ¿Ha tenido en cuenta a esos usuarios?  ¿Qué sucede si el usuario no puede ver los elementos multimedia?: Sería estupendo si el usuario tuviera los plugins necesarios para ver la multimedia como las películas flash o Windows media, pero desafortunadamente, este no es el caso. ¿Proporciona ayuda para obtener los plugins que necesita? ¿Existen versiones alternativas de su contenido para aquellos que no puedan ver la multimedia?  ¿Qué aspecto tiene el sitio en una conexión de modem por línea telefónica?: existen todavía una importante cantidad de usuarios que acceden a la Web con conexiones lentas. ¿Hay algo que puede hacer para que sus páginas se carguen rápidamente? Pruebas de usuario Otro tipo de pruebas que es importante realizar son las pruebas de usuario. Este proceso implica sentar a gente en el sitio y ver lo sencillo que les es encontrar información o completar tareas. Las pruebas de usuario se llevan a cabo pronto en el proceso de desarrollo para que el diseño del sitio se pueda ajustar antes de que empiece la producción seria. No es raro realizar pruebas adicionales de usabilidad en intervalos regulares durante el proceso de producción e incluso después de que se haya lanzado el sitio, para que el sitio se pueda modificar para atender mejor las necesidades de los visitantes. Existen compañías que se puede contratar para que realicen pruebas controladas, pero el precio normalmente es elevado, siendo una opción solamente para sitios Web comerciales con importantes presupuestos. Sin embargo, es posible llevar a cabo una prueba de usuario informal con los miembros de la familia, compañeros de trabajo, amigos y cualquier otra persona que consiga que se siente delante de la computadora y conteste algunas preguntas. Existen dos tipos generales de pruebas de usuario: comportamiento observado y pruebas orientadas a tareas. En la primera, la persona se sienta delante del sitio y lo explore por su cuenta. Proporcionan información a medida que se va avanzando, anotando lo que le gusta y lo que no le gusta, que está claro y que está confuso. En las pruebas orientadas a tareas, a los usuarios se les proporciona una serie de tareas de dificultad variada a realizar en el sitio como “averiguar quien ofrece las videocámaras a mejor precio”. Un observador toma notas de cómo se completa la tarea, al igual que lo vínculos que sigue el usuario en el proceso de completar la tarea.  ¿Pueden los usuarios decir a primera vista de que se trata un sitio?  ¿Existen obstáculos en la forma de alcanzar los objetivos? ¿Pueden encontrar fácilmente información crítica o realizar una compra?  ¿Disfrutan las personas utilizando el sitio?  ¿Existe una tarea determinada o característica en el sitio al que pare que tropiezan múltiples usuarios? Página 15
  • 16. UNIDAD II: DESARROLLO DE APLICACIONES WEB LANZAR EL SITIO Una vez que se tiene todos los detalles resueltos para el sitio, es el momento de enviarlo al servidor final, y ponerlo disponible al mundo. Es una buena idea realizar una última ronda de pruebas para asegurarse que todo sea transferido con éxito y que las páginas funcionan adecuadamente bajo la configuración del servidor final. Esto puede parecer trabajo adicional, pero esto es la reputación del negocio o la del cliente la que va en el éxito del sitio Web, por lo que prestar atención a los detalles es esencial. MANTENER EL SITIO Un sitio Web nunca está del todo terminado. De hecho la posibilidad de realizar actualización y mantener el contenido actualizado es una de las ventajas del medio Web. Es importante tener una estrategia para lo que ocurriría con el sitio después de su lanzamiento inicial. Aunque el mantenimiento es un proceso continuo que ocurre después de que el sitio haya sido creado inicialmente, las decisiones relacionadas con el mantenimiento se deberían tomar pronto en el proceso de desarrollo. Por ejemplo, se debería dejar claro quién será el responsable del mantenimiento del sitio, también decidir que partes del sitio se actualizaran y con qué frecuencia. La actualización afectara a la forma en que se organice la información y diseño del sitio. También se debería considerar la vida útil del sitio. Si es un sitio que proporciona un evento especifico, ¿Qué sucederá con el sitio cuando el evento termina? Incluso en los sitios diseñados para estar en funcionamiento un tiempo requerirán normalmente un rediseño después de unos años para mantenerse al tanto de los cambios de contenido y las practicas actuales de publicaciones. 2.6 Aspectos de seguridad. En este tema se analiza el papel de la seguridad en los sitios Web dinámicos. Se indicará quién puede estar interesado en la información y como podrían obtenerla, los principios implicados en la creación de una política para evitar este tipo de problemas y algunas tecnologías disponibles para salvaguardad la seguridad de un sitio Web incluida la criptografía, la autentificación y el rastreo. Entre los aspectos de seguridad están:  IMPORTANCIA DE LA INFORMACIÓN Al analizar el tema de la seguridad, lo primero que se debe valorar es la importancia de los datos que se está protegiendo, tanto para el propietario como para los posibles atacantes. Puede resultar tentador creer que siempre debería aplicarse el nivel más alto seguridad a todos los sitios, pero la protección tiene un coste. Antes de decidir el esfuerzo o los gastos que se desean invertir en el sistema de seguridad, es necesario determinar el valor de la información. Página 16
  • 17. UNIDAD II: DESARROLLO DE APLICACIONES WEB El valor de la información almacenada en el equipo de un usuario que lo utilice para divertirse, el de una empresa, el de un banco y el de una organización militar es diferente, al igual que varían los esfuerzos que invertirá un atacante para obtener acceso a dicha información. Se debe determinar el valor que tiene los contenidos almacenados en los equipos para un visitante mal intencionado. Los usuarios que utilizan la computadora como pasatiempo dispondrán de tiempo limitado para profundizar en el tema de la seguridad de sus sistemas o en aumentarla. Como la información que almacenaran en sus equipos es poco probable que interese a otros usuarios, los ataques serán poco frecuentes y el esfuerzo invertido en ellos será limitado. Sin embargo, todos los usuarios de equipos con conexión a la red deberían tomar una serie de precauciones ya que incluso los equipos con los datos menos interesantes pueden utilizarse como plataformas para lanzar ataques a otros sistemas. Los equipos militares son un objetivo obvio tanto para individuos como para gobiernos extranjeros. Para atacar a los gobiernos es necesario disponer de muchos medios, por lo que resulta aconsejable invertir en personal y otro tipo de recursos para garantizar la aplicación de todas las precauciones posibles.  AMENAZAS CONTRA LA SEGURIDAD. Las amenazas variaran en función del tipo de sitio Web pero se pueden citar las siguientes: Exposición de datos confidenciales Perdida o destrucción de datos Modificar datos Denegación de servicio Errores en el software Repudio Exposición de datos confidenciales La información almacenada en los equipos o la transmitida de un equipo a otro, pueden ser confidenciales. Podrían tratarse de información destinada únicamente a determinadas personas, como listas de precios de mayoristas, información suministrada por un cliente, como su contraseña, datos de contacto o el número de una tarjeta de crédito. Los servidores Web no son el lugar más aconsejable en el que se deba guardar información secreta. Si se almacenan los datos sobre nomina o el plan para la dominación del mundo en una computadora, no se debería utilizar el mismo que el utilizado como servidor Web. Los servidores Web son equipos diseñados para su acceso público por lo que solo deberían contener información que se ofrezca públicamente o que se acabe de recoger del público. Para reducir el riesgo de la exposición de datos, se debe limitar los métodos de acceso a la información y los usuarios que disponen de dicho acceso, lo cual implica desarrollar las labores de diseño teniendo presente la seguridad, configurar el servidor y el software de manera correcta, programar con atención, realizar pruebas exhaustivas, eliminar los servicios innecesarios de servidor Web y exigir autentificación. Se deben Suprimir los servicios innecesarios de un servidor Web para reducir el número de puntos débiles potenciales. Cada servicio que este ejecutando puede resultar vulnerable. Es necesario mantener todos los servicios actualizados para eliminar los puntos vulnerables conocidos. Los servicios no utilizados pueden resultar peligrosos. Si no se utiliza Página 17
  • 18. UNIDAD II: DESARROLLO DE APLICACIONES WEB el comando rcp, ¿Por qué tenerlo instalado?, los sistemas operativos actuales instalaran una gran cantidad de servicios que no se necesitan y que se debería eliminar. La autenticación implica solicitar a los usuarios que demuestren su identidad. Cuando un sistema sabe quien realiza la petición, puede decidir si dicha persona dispone de acceso. Existen varios métodos de autenticación de los cuales solo se utilizan dos de forma generalizada: las contraseñas y las firmas digitales. Los datos también corren el riesgo de exposición en sus trayectos por la red. Las redes TCP/IP incorporan una gran cantidad de funciones que han contribuido a convertirlas en el estándar de facto para la conexión de diversas redes como internet. Sin embargo, la seguridad no se incluye entre ellas. Los protocolos TCP/IP dividen los datos en paquetes y los reenvían de equipo en equipo hasta que alcanza su destino. Por lo tanto, los datos pasan a través de una gran cantidad de computadoras hasta llegar a su destinatario, como se ilustra en la figura 2.8, y cualquiera de ellas puede ver los datos en su tránsito. Los datos enviados a través de internet recorren una gran cantidad de equipos potencialmente inseguros. Existen comandos y aplicaciones de software para ver la ruta que siguen los datos desde un equipo origen hasta el equipo de destino. Si los datos van dirigidos a un equipo de un mismo país, podrían atravesar una decena de equipos diferentes. Si fueran destinados a un equipo situado fuera del país, el número de intermediarios podría supera los veinte. Si una organización es de gran tamaño y consta de una red compleja, los datos podrían recorrer hasta cinco equipos antes de abandonar el edificio. Para proteger la información confidencial, se pueden cifrar los datos antes de enviarlos a través de una red y descifrarlos en el otro extremo. Los servidores Web suelen utilizar el sistema SSL (Secure Socket Layer), desarrollando por Netscape para realizar esta tarea mientras los datos navegan entre los servidores Web y los navegadores. Se trata de una forma bastante barata en términos de costes y de esfuerzos de proteger las transmisiones, pero como el servidor necesita cifrar y descifrar los datos en lugar de enviarlos y recibirlos simplemente, el número de visitantes por segundo al que puede dar servicio el equipo se reduce drásticamente, debido al tiempo que requiere este proceso. Página 18
  • 19. UNIDAD II: DESARROLLO DE APLICACIONES WEB Pérdida o destrucción de la información La pérdida de datos puede resultar más costosa que su apropiación indebida. Si se llevan meses construyendo un sitio, recogiendo información sobre usuarios y pedidos, si no se ha realizado ninguna copia de seguridad de esos datos, se verán obligados a volver a escribir el sitio Web y a comenzar desde cero. Un pirata informático podría colarse en el sistema y formatear el disco duro. También podría ocurrir que un programador o un administrador poco atento eliminen el disco sin querer o que un disco se estropee. Los discos duros en ocasiones fallan. Se pueden adoptar varias medidas para reducir la probabilidad de perder datos. Proteger los servidores contra ataques informáticos. Reducir al mínimo los empleados con acceso al equipo. Contratar únicamente personal competente y atento. Comprar discos duros de calidad. Independientemente del causante de las pérdidas de datos, solo hay una forma de protección real: las copias de seguridad. La realización de copias de seguridad es una función vital. Asegúrese de volcar sus datos de manera periódica y de almacenar las copias de seguridad lejos de los equipos habituales. Aunque es poco probable que los locales de su empresa se quemen o sufran alguna otra catástrofe, el almacenamiento de una copia de seguridad fuera de ellos es una medida de seguridad barata y eficaz. Modificar datos Aunque la pérdida de datos puede causar muchos daños, su modificación puede resultar aun peor. La eliminación completa de los datos no tardaría mucho tiempo en detectarse sin embargo detectar una modificación de datos requeriría de mucho más. Entre las formas de modificación se incluyen cambios en los archivos de datos ejecutables. La intención de un pirata informático puede ser modificar el aspecto de la Web u obtener beneficios fraudulentos. Mediante la sustitución de archivos ejecutables con versiones saboteadas, un pirata informático que haya logrado entrar una vez en el sistema podría crear una puerta trasera secreta para futuras visitas. Se puede proteger los datos contra su modificación al viajar por la red mediante una firma. Esta técnica no impide la modificación de los datos pero, si el receptor comprueba que la firma coincide al recibir los archivos, sabrá que el archivo no se ha modificado. Si cifra los datos para proteger contra la visualización no autorizada, resultaran muy difíciles de modificar durante el trayecto sin su detección. La protección de los archivos almacenados en un servidor frente a su modificación exige el uso de las funciones de permisos de acceso a archivos que incorpore el sistema operativo y protege el sistema de acceso no autorizado. La aplicación de permiso de archivo permite autorizar el uso de sistema, pero no modificar los archivos del sistema ni de otros usuarios. Detectar las modificaciones puede resultar difícil. Si se descubre que alguien ha penetrado en el sistema de seguridad, ¿Cómo se puede saber si se han modificado archivos importantes? Algunos archivos, como los archivos datos que se almacenan en una base de datos, están ideados para cambiar con el paso del tiempo. Sin embargo, la intención de otros es permanecer invariables desde su instalación a menos que se actualicen deliberadamente. La modificación de programas y datos puede resultar engañosa, y aunque los programas puedan reinstalarse si se sospecha que han sido modificados, puede que no sepa que versión de los datos esta “intacta”. Existen aplicaciones que permiten comprobar la integridad de los archivos, como Tripwire (htt://www.tripwire.com). Esta aplicación registra información sobre archivos en Página 19
  • 20. UNIDAD II: DESARROLLO DE APLICACIONES WEB un estado seguro, probablemente inmediatamente después de la instalación, y permite utilizarla en un momento posterior para verificar si los archivos han variado. Negación de servicio Una de las amenazas más difíciles de evitar es lo que se denominado Negación de servicio (DoS en Ingles). Se produce cuando alguien impide a los usuarios acceder a un servicio o retrasa el acceso a un servicio en el que el tiempo es crucial. A principio de 2000, se produjo una oleada de ataques DoS distribuidos a importantes sitios Web. Entre las víctimas se encontraba yahoo!, eBay, Amazon, ETrade y Buy.com. Estos sitios están acostumbrados a niveles de trafico que solo se puede concebir en sueños, pero siguen siendo vulnerables a este tipo de ataques. Aunque los atacantes no ganan nada con conseguirlo colapsar un sitio, el propietario del mismo puede perder ingreso, tiempo y reputación. Algunos sitios esperan concentrar sus transacciones en determinadas horas. Algunos sitios de apuestas en línea experimentan una mayor demanda antes de un evento deportivo importante. Una de las razones de la dificultad de evitar este tipo de ataques es que se pueden introducir de diferentes formas. Se puede instalar un programa en el equipo de la victima que utilice el tiempo del procesador del sistema, el envió inverso de correo basura o recurrir a una herramienta automatizada. El correo basura inverso envía correo basura en el que se incluye el destinatario como emisor. De esta forma, el destinatario recibirá miles de respuestas de usuario enfadados. Existen herramientas automatizadas que pueden lanzar ataques DoS a un destinatario no concreto. No hay que ser un genio para buscar los puntos débiles de una serie de equipos e instalar la herramienta en los mismos. Como el proceso esta automatizado, un atacante puede instalar la herramienta en un solo host en cuestión de segundos. Una vez afectados varios equipos, reciben instrucciones para inundar el destino con tráfico de red. Protegerse de ataques DoS es una difícil tarea. Si se realiza una búsqueda, se pueden descubrir los puertos predeterminados que utilizan las herramientas DoS habituales y cerrarlos. Puede que el enrutador cuente con un mecanismo para limitar el porcentaje de tráfico que utiliza determinados protocolos como por ejemplo ICMP. Resulta más sencillo detectar los host de una red utilizada para atacar a otros que proteger los equipos de posibles ataques. Si todos los administradores de redes se comprometieran a vigilar su propia red, los ataques DoS no serian un problema. Como existen tantos métodos de ataque, la única defensa realmente eficaz consiste en controlar el comportamiento del tráfico normal y contar con una serie de expertos para que adopten las medidas oportunas en caso de que se produzca alguna situación fuera de lo normal. Errores en el software Es posible que el software que se haya comprado, obtenido o escrito incluya errores graves. Dados los cortos plazos de desarrollo asignado a los proyectos Web, es muy probable que el software incluya errores. Todas las iniciativas comerciales basadas en procesos informáticos resultaran vulnerables a software con errores. Los errores en el software pueden causar todo tipo de compartimientos impredecibles incluida la indisponibilidad del servicio, lagunas de seguridad, pérdidas financieras y servicios deficientes. Entre las causad habituales de los errores se pueden citar las malas especificaciones técnicas, suposiciones erróneas realizadas por los desarrolladores y pruebas incompletas. Malas especificaciones técnicas Cuanto más escasa y ambigua resulte su documentación de diseño, más probables que el producto final incluya errores. Aunque puede que resulte obvio especificar la anulación de un pedido si se rechaza la tarjeta de crédito de un cliente. Mientras menos experiencia tengan Página 20
  • 21. UNIDAD II: DESARROLLO DE APLICACIONES WEB los desarrolladores con el tipo de sistemas con el que están trabajando, más precisas deberían ser las especificaciones técnicas. Suposiciones erróneas hechas por los desarrolladores Los diseñadores y los programadores de un sistema necesitan realizar una gran cantidad de suposiciones. Es de esperar que las documenten y que resulten aceptadas. Sin embargo, las suposiciones pueden resultar erróneas. Por ejemplo, un desarrollador podría asumir que los datos de entrada serán validos, que no incluirán caracteres inusuales o qué cantidad de caracteres introducidos será inferior a un tamaño dado. También podría asumir que no tendrán lugar dos acciones simultaneas que entren en conflicto o que una tarea de procesamiento compleja lleva más tiempo que una tarea sencilla. Suposiciones como estas se pueden deslizar por que suelen ser ciertas. Un pirata informático puede aprovecharse de un desbordamiento de búfer generado por una suposición hecha por un programador con respecto a la longitud máxima de los datos de entrada o un usuario legitimo puede obtener mensajes de error confuso o abandonar la visita por que a los desarrolladores no se les ocurrió prever que el nombre de una persona puede incluir un apostrofe. Este tipo de errores se pueden detectar y solucionar mediante una combinación de pruebas y revisiones detallada del código. Históricamente, el sistema operativo o las debilidades del nivel de aplicación exploradas por los piratas informática se relacionan con los desbordamientos de búfer o con los errores de sincronización. Pruebas incompletas Resulta prácticamente imposible verificar todas las posibles entradas de los usuarios en todos dispositivos de hardware existentes, con todos los sistemas operativos posibles y utilizando todos los parámetros de usuarios disponibles. Es necesario implementar un plan de pruebas bien diseñado que verifique todas las funciones del software en un conjunto representativo de equipos. Un conjunto de pruebas bien planteado debería probar todas las líneas de código del proyecto al menos una vez. De manera ideal, estas pruebas deberían automatizarse para poder ejecutarlas en los equipos seleccionados con muy poco esfuerzo. El problema más importante de esta operación es que se trata de un trabajo repetitivo muy poco atractivo. Aunque hay gente a la que le gusta romper cosas, hay muy pocas a las que le guste romper la misma cosa una y otra vez. Es importante que en este proceso participen otras personas además de los desarrolladores originales. Uno de los objetivos principales de las pruebas es detectar las suposiciones erróneas realizadas por los desarrolladores. Es probable que una persona no implicada realice suposiciones diferentes. Además, los profesionales no suelen mostrarse muy implicados a buscar errores dentro de su trabajo. Repudio El ultimo riesgo que considerar es el repudio. El repudio tiene lugar cuando una parte implicada en una transacción niega haber tomado parte en ella. En el comercio electrónico puede tratarse de una persona que realice un pedido a través del sitio Web y que rehace la autorización para realizar el cargo sobre su tarjeta de crédito, o una persona que acepte algo procedente del correo electrónico y que después afirme que alguien falsifico dicho correo. De manera ideal, las transacciones financieras deberían garantizar la seguridad de que ninguna de las partes las repudiara. Ninguna parte podría denegar su participación en una transacción o, para ser más exacto, ambas partes podrían demostrar de manera terminante las acciones realizadas por la otra parte ante un tercero, como por ejemplo un tribunal. En la práctica, esto no suele ocurrir. La autenticación ofrece ciertas ganancias sobre la parte con la Página 21
  • 22. UNIDAD II: DESARROLLO DE APLICACIONES WEB que se está tratando. Los certificados digitales de autenticación emitidos por una organización de confianza brindan una gran fiabilidad. También deberían poder certificarse los contenidos de los mensajes enviados por cualquiera de las partes. Para las transacciones entre las partes con una relación ya establecida, los certificados digitales y el uso de comunicaciones cifradas o firmadas proporcionan una forma efectiva de limitar el repudio. Si las transacciones son aisladas, como el contacto inicial entre un sitio de comercio electrónico y un usuario que utilice una tarjeta de crédito, esta opción no resulta tan práctica. Las compañías de comercio electrónico deben estar dispuestas a probar su identidad y a contratar los servicios de una autoridad de certificación como VeriSign (http://www.verisign.com) o Thawte (http://www.thawte.com) para garantizar la autenticidad de la compañía. En las pequeñas transacciones, los comerciantes están dispuestos a admitir un determinado nivel de fraude o riesgo de repudio a cambios de mantener el nivel de transacciones.  EQUILIBRIO ENTRE USABILIDAD, RENDIMIENTO, COSTE Y SEGURIDAD Por su propia naturaleza, la Web es un lugar peligroso. Este medio está diseñado para permitir que numerosos usuarios soliciten servicios desde sus equipos. La mayor parte de estas peticiones realizan peticiones de páginas Web perfectamente legítimas, pero al conectar sus equipos a internet también existe la posibilidad de que la gente realice otros tipos de conexiones. Aunque resulta tentador asumir que es apropiado establecer el nivel de seguridad, más alto, no suele ser así. Si se desea estar completamente protegido, tendrá que colocar todos los equipos en una caja fuerte sin conexión a la red. Para que los equipos resulten accesibles se puedan utilizar, es necesario rebajar el nivel de seguridad de alguna manera. Se debe buscar el equilibrio entre la seguridad, la usabilidad, el coste y el rendimiento. Si se aumenta la seguridad de un servicio se puede reducir su capacidad de uso, por ejemplo, al limitar lo que puede hacer la gente o pedir que se identifiquen. El incremento de la seguridad también puede reducir el nivel de rendimiento de los equipos. La ejecución de software para lograr que el sistema resulte más seguro (como sistemas de encriptación y detección de intrusos, escáneres de virus y operaciones de registros de usuario) absorbe recursos. Se necesita mucho más potencial de procesamiento para suministrar una sesión cifrada, como una conexión SSL a un sitio Web, que una sesión normal. La pérdida de rendimiento se puede compensar con la adquisición de equipos o hardware más rápido que este especialmente diseñado para operaciones de encriptación. El rendimiento, la usabilidad, el coste y la seguridad se pueden considerar como objetivos contrapuestos. Se deberán examinar los pros y los contras de cada opción y tomar una decisión que logre un compromiso en función del valor de la información, del presupuesto, de la cantidad de visitas esperadas y de los obstáculos que considere que aceptaran los usuarios legítimos.  CREAR UNA POLÍTICA DE SEGURIDAD Una política de seguridad es un documento que describe La filosofía general sobre seguridad en una organización Que se debe proteger: software, hardware y datos Quien es responsable de la protección de estos elementos Página 22
  • 23. UNIDAD II: DESARROLLO DE APLICACIONES WEB Estándares de seguridad e indicadores para medir el cumplimiento de dichos estándares A la hora de desarrollar la política de seguridad se pueden aplicar las mismas reglas utilizadas para escribir un conjunto de requisitos de software. En esta política no debería hablarse de implementaciones o soluciones, si no de requisitos de seguridad y objetivos dentro del entorno. Y no debería actualizarse a menudo. Se debería crear un documento en el que se establezcan las directrices utilizadas para medir el cumplimiento de la política de seguridad en un entorno dado. Se pueden establecer directrices diferentes para las distintas partes de la organización. Sería como un documento de diseño o un procedimiento manual en el que se recoja que se está haciendo para garantizar el nivel de seguridad requerido.  PRINCIPIO DE AUTENTICACIÓN El objetivo de la autenticación es demostrar que alguien es quien dice ser. Existen muchas formas de suministrar autenticación pero como en el caso de muchas medidas de seguridad, cuanto más seguro son los métodos más problemáticos resultan de utilizar. Las técnicas de autenticación incluyen el uso de contraseñas, firmas digitales, medidas biométricas mediante escáneres de huellas y medidas que implican el uso de hardware como tarjetas inteligentes. En la Web solo se utilizan dos de manera extendida: las contraseñas y las firmas digitales. Las medidas biométricas y la mayor parte de las soluciones de hardware implican el uso de dispositivos de entrada especiales, lo que limitaría el acceso a aquellos usuarios autorizados con computadoras equipados. Esta opción podría resultar aceptable o incluso deseable para obtener acceso a los sistemas internos de una organización, pero reduce gran parte de las ventajas de permitir el acceso al sistema en la Web. Las contraseñas resultan fáciles de implementar, sencillas de utilizar y no requieren el uso de dispositivos de entrada especiales. Suministran un determinado nivel de autenticación pero es posible que resulten insuficientes para sistemas de alta seguridad. El concepto de una contraseña es sencillo. El usuario y el sistema conocen la contraseña. Si otro visitante afirma ser un usuario y conoce su contraseña, el sistema lo aceptará. Este sistema resulta seguro siempre y cuando nadie más sepa o pueda adivinar la contraseña. Las contraseñas presentan en sí mismas varios puntos débiles y no suministran autenticación segura.  FUNDAMENTOS DE LA ENCRIPTACIÓN Un algoritmo de encriptación es un proceso matemático que transforma información en una cadena aparentemente aleatoria de datos. Los datos de los que se parte son textos sin procesar, aun que no es importante para el proceso lo que represente la información (que se trate de texto o de otro tipo de datos). La información cifrada se conoce como texto encriptado, aunque se parezca poco a un texto en la mayor parte de los casos. El texto que se desea cifrar se introduce en un motor de encriptación, que podría ser un programa informático. El motor devuelve el texto encriptado. Encriptación de mensajes Página 23
  • 24. UNIDAD II: DESARROLLO DE APLICACIONES WEB Muchas contraseñas se almacenan utilizando un algoritmo de encriptación de una sola dirección. Para poder determinar si una contraseña introducida resulta correcta, no es necesario descifrar la contraseña almacenada. En su lugar, bastara con cifrar la contraseña introducida y compararla con la versión almacenada, esta es mecanismo utilizado con la función sha1() de PHP. Muchos procesos de encriptación se pueden invertir, aunque no todos. El proceso inverso al encriptación se conoce como decriptación. En la siguiente figura se muestra un proceso de encriptación de doble sentido. El proceso de encriptación toma texto sin procesar y lo transforma en texto cifrado con aspecto aleatorio. El proceso de decriptación toma el texto encriptado y lo transforma en el texto original. La criptografía tiene unos 4000 años de antigüedad, pero alcanzo la mayoría de edad en la segunda guerra mundial. Su crecimiento desde entonces ha seguido de cerca al desarrollo de las redes de computadoras. En un principio solo era utilizada por las instituciones militares y organizaciones financieras. En los años 70 se extendió su uso y en los años 90 se hizo omnipresente. En los últimos años, la encriptación ha pasado de ser un concepto que solo la gente conocía por las películas de espías y de la segunda guerra mundial a convertirse en algo de lo que se habla en los periódicos y se utiliza cada vez que se compra algo a través de navegadores Web. Existen muchos algoritmos de encriptación disponibles. Algunos utilizan una clave secreta o privada, y otros, utilizan una clave pública y una clave privada distinta. Encriptación de la clave privada La encriptación de la clave privada se basa en usuarios autorizados que conocen o disponen de acceso a una clave. Esta clave debe mantenerse en secreto ya que de lo contrario los mensaje cifrados podrían ser leídos por personas no autorizadas como se muestra en al figura anterior, tanto el remitente (la persona que cifra el mensaje) como el receptor (el que descifra el mensaje) tienen la misma clave. El algoritmo de clave secreta más utilizado es DES (del ingles Data Ecryptation Stanar, Estandar de Encriptación de Datos). Fue desarrollado por IBM en los años 70 y fue adoptado como el estándar americano para comunicaciones comerciales y gubernamentales no clasificadas. La velocidad de las computadoras ha aumentado mucho desde entonces y DES ha quedado obsoleto desde al menos 1998. Otros sistemas de claves secretas conocidos son RC2, RC4, RC5. Triple DES e IDEA. El sistema triple DES resulta bastante seguro (paradójicamente, este sistema es dos veces más seguro que DES; si se necesita un sistema tres veces más seguro, se puede escribir un programa que implemente algoritmo DES quíntuple). Utiliza el mismo algoritmo DES, pero Página 24
  • 25. UNIDAD II: DESARROLLO DE APLICACIONES WEB se aplica tres veces con hasta tres claves diferentes. El mensaje de texto se cifra con la primera clave, se descifra con la segunda y se vuelve a cifrar con la tercera. Uno de los defectos de la encriptación con clave secreta es que para enviar un mensaje seguro a alguien, es necesario disponer de una forma segura de enviar una clave, ¿por qué no utilizarla para enviar el mensaje? Afortunadamente, en 1976 se produjo un avance significativo cuando diffie y hellman publicaron el primer método de clave pública. Encriptación de clave pública La encriptación de clave pública se basa en dos claves, una clave pública y una clave privada. Como se ilustra en la siguiente figura, la clave pública se utiliza para cifrar mensajes y la clave privada para descifrarlos. La ventaja de este sistema es que la clave pública, como su nombre indica, se puede distribuir públicamente. Todo el mundo al que se le entregue la clave pública puede enviar un mensaje seguro al receptor, mientras se tenga en secreto la clave privada, solo el receptor podrá descifrar el mensaje.  FIRMAS DIGITALES Las firmas digitales están relacionadas con la criptografía de clave pública, pero invierten los papeles de las claves públicas y privadas. Un remitente puede cifrar y firmar digitalmente un mensaje con su clave secreta. Cuando se recibe el mensaje, el receptor puede descifrarlo con la clave secreta del remitente. Como el remitente es la única persona con acceso a la clave secreta, el receptor puede estar bastante seguro de la procedencia del mensaje y de que no se ha alterado. Las firmas digitales resultan muy útiles. Garantizan la procedencia de los mensajes y dificultan el rechazo del envió por parte del remitente. De todos modos, es importante tener en cuenta, que aunque el mensaje se ha cifrado, cualquier persona que tenga la clave publica puede leerlo. Si bien se utilizan las mismas técnicas y claves, la finalidad de uso de la encriptación en este caso es impedir la modificación de los mensajes y su repudio, no su lectura. Como el cifrado de clave publica resulta bastante lento en el caso de mensajes de gran tamaño, se suele utilizar otro tipo de algoritmo, llamado función hash, para mejorar la eficacia. La función hash calcula un mensaje o valor hash para cualquier mensaje que se le indique. El valor generado por el algoritmo no es importante. Lo importante es que el resultado sea fijo, es decir, que sea el mismo cada vez que se utiliza una entrada dada, que sea pequeño y que el algoritmo sea rápido.  CERTIFICADOS DIGITALES La posibilidad de verificar que un mensaje no se ha alterado y que procede de un usuario o de un equipo dado es un gran avance. Para las interacciones comerciales, resultaría incluso mejor disponer de la posibilidad de vincular a dicho usuario o servidor a una entidad legal real como Página 25
  • 26. UNIDAD II: DESARROLLO DE APLICACIONES WEB una persona o compañía. Un certificado digital combina una clave pública con los detalles de una organización o individuo en un formato digital. En un certificado, se tiene la clave pública de otra parte, por si se quiere enviar un mensaje cifrado y tener los detalles de la otra parte que podrá estar seguro de que no se ha alterado. Los certificados suministran una estructura de confianza. Si se confía en la CA, se puede confiar en aquellas partes en las que confía la CA y a su vez en aquellas partes en las que confía la parte certificada. Los certificados digitales se suele utilizar para conferir un aire de respetabilidad a un sitio Web de comercio electrónico. Con un certificado emitido por una CA conocida, los navegadores Web pueden establecer conexiones SSL al sitio sin generar cuadros de dialogo de advertencia. Los servidores Web que permite conexiones SSL se suelen llamar servidores Web seguros.  SERVIDORES WEB SEGUROS Se puede utilizar el servidor Web apache, el servidor IIS de Microsoft o cualquier otro servidor Web comercial para establecer comunicaciones seguras con navegadores a través de SSL. Apache permite utilizar el sistema operativo UNIX, que suelen resultar más fiables pero más difíciles de configurar que IIS. El servidor apache se puede utilizar en una plataforma Windows. El uso de SSL sobre IIS implica sencillamente instalar IIS, generar un par de claves e instalar el certificado. El uso de SSL en apache requiere la instalación de tres paquetes diferentes: Apache, Mod_SSL y OpenSSL.  AUDITORIAS Y REGISTROS El sistema operativo permitirá registrar todo tipo de evento. Los eventos en los que se puede estar interesado desde el punto de vista de la seguridad incluyen errores de red, acceso a archivos de datos, etc. Los archivos de registro pueden servir de ayuda para detectar comportamientos erróneos o malintencionados cuando tienen lugar. También se puede utilizar para determinar cómo tuvo lugar un problema o una intrusión si se examina tras observar problemas. Los archivos de registro presentan dos problemas principales: el tamaño y la veracidad. Si se establecen los criterios para detectar y registrar problemas en el nivel de mayor paranoia, se obtendrán registros gigantescos que resultan muy difíciles de examinar. Para trabajar con archivos de registro de gran tamaño, se tendrá que recurrir a una herramienta existente o derivar algunas secuencias de comandos de la política de seguridad establecida para realizar búsquedas de eventos “interesantes” dentro de los registros.  CORTAFUEGOS El objetivo de los cortafuegos es alejar una red del mundo exterior. De la misma forma que los cortafuegos de un edificio o de un coche impiden que el fuego se extienda a otros compartimientos, los cortafuegos de red impiden que el caos se extienda por una red. Los cortafuegos están diseñados para proteger los equipos de una red del mundo exterior. Filtran y rechazan el tráfico que no cumple las reglas establecidas en ellos. Restringe las actividades de la gente y los equipos situados fuera de los cortafuegos. En ocasiones, los cortafuegos también se pueden utilizar para restringir las actividades de los equipos incluidos en su interior. Uno cortafuegos puede limitar los protocolos de red que se pueden utilizar, los host a los que se pueden conectar o forzar el uso de un servidor proxy para reducir costes en términos de ancho de banda. Página 26
  • 27. UNIDAD II: DESARROLLO DE APLICACIONES WEB  COPIA DE SEGURIDAD DE LOS DATOS No se puede subestimar la importancia de las copias de seguridad en ningún plan de recuperación de desastres. El hardware y los inmuebles se pueden asegurar y sustituir, o los sitios alojados en cualquier host, pero si el software Web personal desaparece, ninguna entidad aseguradora podrá sustituirlo. Se deben hacer copias de seguridad periódicas de todos los componentes del sitio Web (páginas estáticas, secuencias de comandos y bases de datos). La frecuencia depende del dinamismo del sitio. Si se trata de un sitio completamente estático, bastara con hacer una copia cuando se modifique. Sin embargo, el tipo de sitio que se está tratando es probable que cambie con frecuencia, en especial si se reciben pedidos en línea. La mayor parte de los sitios con un tamaño razonable deben alojarse en un servidor con un sistema RAID (del ingles Redundant Array of Inexpensive Disk, Matriz redundante de discos independientes) que admite funciones de réplica. De esta forma, queda cubierta la probabilidad de que ocurra un fallo en el disco duro. sin embargo, se debe considerar que ocurriría en una situación que afecta a la matriz, al equipo a al edificio entero. La frecuencia con la que se deben realizarlas está en función con el volumen de actualización. Estas copias de seguridad deberían almacenarse en un lugar diferente y a ser posible en un lugar distinto y seguro contra incendios, robos o desastres naturales.  SEGURIDAD FISICA Las amenazas de seguridad consideradas hasta el momento hacen referencia a elementos intangibles como el software, pero no se debería descuidar la seguridad física de un sistema. Se debe prever un sistema de aire acondicionado y sistemas de protección contra el fuego, personas (torpes o criminales), fallos en el suministro eléctrico y fallos en la red. El sistema debería estar protegido bajo llave en un lugar seguro. El lugar concreto dependerá de cada caso pero puede ser una habitación, una jaula o un armario. Solo se debería conceder permiso de acceso a esta habitación al personal pertinente. El personal no autorizado podría, voluntaria o involuntariamente, desconectar los cables o intentar eludir los mecanismos de seguridad utilizando un disco de reinicio. Los rociadores de agua pueden causar tanto daño a los componentes electrónicos como el fuego. Los sistemas para la extinción de incendios deben utilizar alternativas poco dañinas como el gas argón o el dióxido de carbono. En determinados lugares, se producen breves cortes de energía eléctrica de manera habitual. En sitios con climatologías extremas o cables enterrados se suelen producir cortes de larga duración. Si el funcionamiento continuo del sistema es un factor importante, se debería utilizar un sistema de alimentación ininterrumpible. Los cortes de suministro de larga duración requieren un generador que alimente el sistema de refrigeración y los equipos. Página 27