Guia Programacion Web Final
Guia Programacion Web Final
Guia Programacion Web Final
APLICACIONES WEB”
1
Resumen
La asignatura de Programación de Aplicaciones Web se imparte a los estudiantes del cuarto
ciclo de la Tecnología Superior en Desarrollo de Software, pertenece a la unidad de
organización profesional y su campo de formación es la adaptación e innovación tecnológica,
con un total de 214 horas. En esta asignatura se imparte conocimientos desde el inicio de la
programación web con HTML, CSS y JavaScript, hasta utilizar frameworks del lado Frontend
y Backend para construir soluciones informáticas complejas y escalables, con su respectivo
despliegue en servidores.
Introducción
La asignatura de Programación de Aplicaciones Web, está enfocada en brindar al estudiante
una formación más avanzada sobre programación y construcción de aplicaciones
informáticas, permitirles desarrollar su lógica en un contexto web, para dar soluciones a
problemas reales de una empresa y de la sociedad, utilizar diferentes tecnologías o
herramientas informáticas para desarrollar software a gran escala y principalmente tener una
visión más técnica del ciclo de vida de un proyecto informático.
Por tal motivo, el objetivo general es desarrollar aplicaciones web tanto del lado del cliente
como del servidor utilizando lenguajes de programación web y aplicando algoritmos de
búsqueda, ordenamiento, numéricos, estadísticos y criptográficos
Esta asignatura contempla los siguientes contenidos mínimos, la primera unidad trata sobre la
Introducción a la Programación Web, en la segunda unidad se hace referencia a la
Programación del lado del servidor, la tercera unidad se fundamenta en el FrontEnd y librerías
importantes, y finalmente en la cuarta unidad se hace un estudio sobre el modo producción y
seguridad
Desarrollar aplicaciones web tanto del lado del cliente como del servidor utilizando lenguajes
de programación web y aplicando algoritmos de búsqueda, ordenamiento, numéricos,
estadísticos y criptográficos
2
Trabajo en equipo. - Esta habilidad es fundamental ya que los programadores deben
aprender a trabajar con otras personas, por lo que se debe entrenar para generar
equipos de trabajo más amigables y productivos.
Gestión del tiempo. - Dentro de este mundo cambiante y remoto, nada mejor que
desarrollar la habilidad de manejar el tiempo disponible para cada proyecto.
Resolución de Problemas. - Resolver problemas tiene que ver con la actitud pero
también con la planificación y la creatividad.
Responsabilidad. - El cumplimiento de las tareas pautadas, la organización o la
puntualidad, son atributos que permiten sentar las bases de una relación duradera
respecto a otros, y ayudarte a despegar tu carrera.
Índice de contenidos
3
2.3. Api Rest.....................................................................................................................................24
2.4. Principales características de una API REST............................................................................25
2.5. Framework Sprng Boot..............................................................................................................27
2.5.1. Creando el proyecto...................................................................................................................28
2.5.2. Definiendo la clase principal.....................................................................................................29
2.5.3. Spring Data................................................................................................................................30
2.5.4. Configuración de la base de Datos............................................................................................30
2.5.5. Creando una REST....................................................................................................................31
3. Unidad 3: Gestores de contenidos.............................................................................................37
3.1. Introducción...............................................................................................................................37
3.2. Objetivos de la unidad...............................................................................................................37
3.3. Software Xampp........................................................................................................................38
3.3.1. Características y Requisitos.......................................................................................................38
3.3.2. Aplicaciones..............................................................................................................................38
3.3.3. Instalación..................................................................................................................................38
3.3.4. El panel de control.....................................................................................................................40
3.3.5. Iniciar servidores.......................................................................................................................41
3.4. WordPress..................................................................................................................................42
3.4.1. Instalación..................................................................................................................................42
3.5. Drupal........................................................................................................................................44
3.5.1. Características de Drupal...........................................................................................................45
3.5.2. Instalación de Drupal.................................................................................................................46
3.6. Joomla........................................................................................................................................46
3.6.1. Características generales............................................................................................................46
3.6.2. Características de publicación de páginas web en Joomla:.......................................................47
3.6.3. Instalación de Joomla................................................................................................................48
4. Unidad 4: Seguridad y Modo Producción.................................................................................50
4.1. Introducción...............................................................................................................................50
4.2. Objetivos de la Unidad..............................................................................................................50
4.3. Generalidades de la seguridad web............................................................................................50
4.3.1. Seguridad en los Sistemas de Información: Los tres grandes....................................................51
4.3.2. Herramientas para la seguridad de la información....................................................................52
4.4. Herramientas de identificación de vulnerabilidades..................................................................53
4.5. Publicación de sitios Web..........................................................................................................55
Bibliografía.............................................................................................................................................60
Anexos 62
Anexo 1. Solucionario de la Autoevaluación de la primera Unidad......................................................62
4
Anexo 2. Solucionario de la Autoevaluación de la segunda Unidad......................................................64
Anexo 3. Solucionario de la Autoevaluación de la segunda Unidad......................................................65
Anexo 4. Solucionario de la Autoevaluación de la segunda Unidad......................................................65
Índice de Tablas
Índice de Figuras
5
Figura 30 Instalación de WordPress......................................................................................................42
Figura 31 Datos de la página para instalación de WordPress...............................................................43
Figura 32 Instalación finalizada de Drupal...........................................................................................45
Figura 33 Instalación finalizada de Joomla...........................................................................................47
Figura 34 Proyecto con framework Angular.........................................................................................55
Figura 35 Configuración de servidor Apache.......................................................................................56
Figura 36 Spring Boot Modo producción..............................................................................................56
Figura 37 Configuración archivo pom.xml...........................................................................................57
1.1. Introducción
6
Crear sitios web interactivos y atractivos, empleando HTML para estructurar el
contenido, CSS para diseñar y dar estilo a la página y JavaScript para añadir
funcionalidades interactivas.
El World Wide Web (WWW) es un sistema que contiene una cantidad de información casi
infinita. Pero esta información debe estar ordenada de alguna forma de manera que sea posible
encontrar lo que se busca. La unidad básica donde está almacenada esta información son las
páginas Web. Estas páginas se caracterizan por contener texto, imágenes, animaciones... e
incluso sonido y video.
Una de las características más importantes de las páginas Web es que son hipertexto. Esto
quiere decir que las páginas no son elementos aislados, sino que están unidas a otras mediante
los links o enlaces hipertexto. Gracias a estos enlaces el navegante de internet puede pulsar
sobre un texto (texto al que llamaremos de ahora en adelante activo) de una página para
navegar hasta otra página. Será cuestión del programador de la página inicial decidir que
palabras o frases serán activas y a donde nos conducirá pulsar sobre ellas.
En algunos ambientes se discute que el World Wide Web ya no es un sistema hipertexto sino
hipermedia. Los que defienden el cambio se apoyan en que, aunque en sus orígenes el WWW
constaba únicamente de texto en la actualidad es un sistema principalmente gráfico y se puede
hacer que las zonas activas sean, no sólo texto, sino imágenes, videos, botones, en definitiva
cualquier elemento de una página. Aún así, el término original no ha sido reemplazado
todavía y por tanto será el empleado a lo largo de esta obra.
1.3.1. Qué es un navegador
Un CMS es un software desarrollado para que cualquier usuario pueda administrar y gestionar
contenidos de una web con facilidad y sin conocimientos de programación Web. Previamente
un programador deberá desarrollar la página web en base al CMS más apropiado para el tipo
de web, dejando las tareas posteriores de gestión en manos del usuario final.
7
CMS para tiendas on-line
PrestaShop
WordPress + WooCommerce
Magento
1.4. HTML
Pero empecemos ya con lo que nos interesa. ¿Cómo se hace una página Web? Cuando los
diseñadores del WWW se hicieron esta pregunta decidieron que se debían cumplir, entre
otras, las siguientes características:
El Web tenía que ser distribuido: La información repartida en páginas no muy grandes
enlazadas entre sí.
El Web tenía que ser hipertexto y debía ser fácil navegar por él.
Tenía que ser compatible con todo tipo de ordenadores (PCs, Macintosh, estaciones de
trabajo...) y con todo tipo de sistemas operativos (Windows, MS-DOS, UNIX, MAC-
OS).
Debía ser dinámico: el proceso de cambiar y actualizar la información debía ser ágil y
rápido.
Estas características son las que marcaron el diseño de todos los elementos del WWW
incluida la programación de páginas Web. Como respuesta a todos estos requisitos se creo el
lenguaje HTML (HiperText Markup Language), cuyas siglas significan "lenguaje hipertexto
de marcas".
Este lenguaje será el encargado de convertir un inocente archivo de texto inicial en una página
web con diferentes tipos y tamaños de letra, con imágenes impactantes, animaciones
sorprendentes, formularios interactivos, etc.
1.4.1. Qué se necesita para realizar una página web
Una de las características de este lenguaje más importantes para el programador es que no es
necesario ningún programa especial para crear una página Web. Gracias a ello se ha
conseguido que se puedan crear páginas con cualquier ordenador y sistema operativo. El
código HTML, como hemos adelantado en el párrafo anterior, no es más que texto y por tanto
lo único necesario para escribirlo es un editor de texto como el que acompañan a todos los
sistemas operativos: edit™ en MS-DOS, block de notas en Windows, vi™ en UNIX, etc. Por
supuesto estos no son los únicos editores de texto que pueden ser usados, sino cualquier otro.
También se puede usar procesadores de texto, que son editores con capacidades añadidas,
campo pueden ser Microsoft Word™ o WordPerfect™ pero hay que tener cuidado porque en
ocasiones hacen traducciones automáticas del código HTML que no siempre son deseadas. En
estos dos últimos casos, también hay que tener en cuenta que deberemos guardar el archivo en
modo texto.
1.4.2. Las bases de HTML
8
Una vez repasadas unas nociones básicas de HTML y de la programación de páginas Web en
general entraremos de lleno en la programación con este lenguaje. Pronto nos daremos cuenta
de la sencillez de este lenguaje lo que le convierte en un lenguaje muy fácil de aprender y que
nos permitirá crear páginas con mayor facilidad aún.
Las órdenes de este lenguaje estarán formadas por unos comandos llamados etiquetas que
pueden tener o bien la siguiente estructura:
<NOMBRE_ETIQUETA>
O bien esta otra:
<NOMBRE_ETIQUETA> TEXTO </NOMBRE ETIQUETA>
Como vemos, la primera estructura está formada por una única instrucción y la segunda por
dos: una que marca el inicio de la etiqueta y otra que marca el final, con texto entre ambas.
Por ejemplo, para indicarle al navegador que queremos que pinte una línea horizontal
debemos escribir:
<hr>
Así de sencillo. Como vemos, el nombre de la etiqueta va delimitado por los símbolos menor
que (<) y mayor que (>), todas las instrucciones de HTML deben ir encerradas entre estos dos
símbolos.
Pero las etiquetas no se limitan a indicar ordenes tan sencillas, estas órdenes tienen en
ocasiones parámetros. Por ejemplo, la etiqueta <hr> tal y como lo hemos hecho anteriormente
daría lugar a la línea que vemos en la siguiente figura, es decir le dice al navegador que dibuje
una línea horizontal en la pantalla.
Esta línea tiene un grosor predeterminado y un ancho variable en función del tamaño de la
ventana del navegador.
Figura 1
Resultado de la etiqueta hr
9
Sin embargo, hay muchas formas de pintar una línea y sería deseable poder elegir detalles
tales como la anchura y el grosor que va a tener dicha línea. Para especificar este tipo de
detalles se crearon los atributos de las etiquetas. Este nuevo elemento se introduce en una
etiqueta de la siguiente manera:
<etiqueta atributo="valor">
Es decir, en primer lugar, ponemos el nombre de la etiqueta, después el nombre del atributo
seguido por un signo igual y posteriormente el valor que queramos darle a ese atributo
encerrado entre comillas una etiqueta puede tener tantos atributos como se deseen y en
ocasiones son necesarios para que la etiqueta tenga algún significado.
En nuestro ejemplo de la línea horizontal existe un atributo llamado SIZE, que significa
tamaño en inglés, que permite controlar el grosor de la línea que será dibujada en pantalla.
Veamos un ejemplo, en la siguiente podemos ver la línea horizontal con diferentes grosores.
Figura 2
Varios tamaños para la etiqueta hr
10
Código de la página
</html>
El código de la página está formado a su vez por dos grandes bloques, la cabecera y el cuerpo.
La cabecera de la página está delimitada por las instrucciones de inicio y fin de la etiqueta
head. Estas instrucciones deben estar dentro de la etiqueta HTML de la siguiente manera:
<html>
<head>
Elementos de la cabecera
</head>
... Resto de código de la página …
</html>
En la cabecera de la página se introduce toda aquella información que afectará a toda la
página. En un principio esta información se limitará al título. Este título se indicará con la
etiqueta title usando la siguiente sintaxis:
<html>
<head>
<title>Mi primera página WEB</title>
</head>
</html>
1.5. Hojas de estilo CSS
CSS es un lenguaje de hojas de estilos creado para controlar el aspecto o presentación de los
documentos electrónicos definidos con HTML y XHTML. CSS es la mejor forma de separar
los contenidos y su presentación y es imprescindible para crear páginas web complejas.
Separar la definición de los contenidos y la definición de su aspecto presenta numerosas
ventajas, ya que obliga a crear documentos HTML/XHTML bien definidos y con significado
completo (también llamados "documentos semánticos"). Además, mejora la accesibilidad del
documento, reduce la complejidad de su mantenimiento y permite visualizar el mismo
documento en infinidad de dispositivos diferentes.
Al crear una página web, se utiliza en primer lugar el lenguaje HTML/XHTML para marcar
los contenidos, es decir, para designar la función de cada elemento dentro de la página:
párrafo, titular, texto destacado, tabla, lista de elementos, etc.
Una vez creados los contenidos, se utiliza el lenguaje CSS para definir el aspecto de cada
elemento: color, tamaño y tipo de letra del texto, separación horizontal y vertical entre
elementos, posición de cada elemento dentro de la página, etc.
11
1.5.1. Funcionamiento básico de CSS
Antes de la adopción de CSS, los diseñadores de páginas web debían definir el aspecto de
cada elemento dentro de las etiquetas HTML de la página. El siguiente ejemplo muestra una
página HTML con estilos definidos sin utilizar CSS:
Figura 3
Estilos defnidos en las etiquetas HTML
El ejemplo anterior utiliza la etiqueta <font> con sus atributos color, face y size para definir el
color, la tipografía y el tamaño del texto de cada elemento del documento.
El principal problema de esta forma de definir el aspecto de los elementos se puede ver
claramente con el siguiente ejemplo: si la página tuviera 50 elementos diferentes, habría que
insertar 50 etiquetas <font>. Si el sitio web entero se compone de 10.000 páginas diferentes,
habría que definir 500.000 etiquetas <font>. Como cada etiqueta <font> tiene 3 atributos,
habría que definir 1.5 millones de atributos.
Por otra parte, el diseño de los sitios web está en constante evolución y es habitual modificar
cada cierto tiempo los colores principales de las páginas o la tipografía utilizada para el texto.
Si se emplea la etiqueta <font>, habría que modificar el valor de 1.5 millones de atributos
para modificar el diseño general del sitio web.
La solución que propone CSS es mucho mejor, como se puede ver en el siguiente ejemplo:
12
Figura 4
Aplicar estilos mediante la etiqueta Style
13
Normalmente, la etiqueta<link>incluye cuatro atributos cuando se enlaza un archivo CSS:
rel: indica el tipo de relación que tiene el recurso enlazado (en este caso, el archivo
CSS) y la página HTML. Para los archivos CSS, siempre se utiliza el valor stylesheet.
type: indica el tipo de recurso enlazado. Sus valores están estandarizados y para los
archivos CSS su valor siempre estext/css.
href: indica la URL del archivo CSS que contiene los estilos. La URL indicada puede
ser relativa o absoluta y puede apuntar a un recurso interno o externo al sitio web.
media: indica el medio en el que se van a aplicar los estilos del archivo CSS. Más
adelante se explican en detalle los medios CSS y su funcionamiento.
De todas las formas de incluir CSS en las páginas HTML, esta es la más utilizada con mucha
diferencia. La principal ventaja es que se puede incluir un mismo archivo CSS en multitud de
páginas HTML, por lo que se garantiza la aplicación homogénea de los mismos estilos a
todas las páginas que forman un sitio web.
Con este método, el mantenimiento del sitio web se simplifica al máximo, ya que un solo
cambio en un solo archivo CSS permite variar de forma instantánea los estilos de todas las
páginas HTML que enlazan ese archivo.
Aunque generalmente se emplea la etiqueta <link> para enlazar los archivos CSS externos,
también se puede utilizar la etiqueta <style>. La forma alternativa de incluir un archivo CSS
externo se muestra a continuación:
Figura 6
Forma alterna de integrar un archivo .css
1.6. JavaScript
JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas
web dinámicas.
Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es
necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos
14
con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de
procesos intermedios.
A pesar de su nombre, JavaScript no guarda ninguna relación directa con el lenguaje de
programación Java. Legalmente, JavaScript es una marca registrada de la empresa Sun
Microsystems, como se puede ver enhttp://www.sun.com/suntrademarks/.
1.6.1. Breve Historia
A principios de los años 90, la mayoría de usuarios que se conectaban a Internet lo hacían con
módems a una velocidad máxima de 28.8 kbps. En esa época, empezaban a desarrollarse las
primeras aplicaciones web y por tanto, las páginas web comenzaban a incluir formularios
complejos.
Con unas aplicaciones web cada vez más complejas y una velocidad de navegación tan lenta,
surgió la necesidad de un lenguaje de programación que se ejecutara en el navegador del
usuario. De esta forma, si el usuario no rellenaba correctamente un formulario, no se le hacía
esperar mucho tiempo hasta que el servidor volviera a mostrar el formulario indicando los
errores existentes.
Brendan Eich, un programador que trabajaba en Netscape, pensó que podría solucionar este
problema adaptando otras tecnologías existentes (como ScriptEase) al navegador Netscape
Navigator 2.0, que iba a lanzarse en 1995. Inicialmente, Eich denominó a su lenguaje
LiveScript.
Posteriormente, Netscape firmó una alianza con Sun Microsystems para el desarrollo del
nuevo lenguaje de programación. Además, justo antes del lanzamiento Netscape decidió
cambiar el nombre por el de JavaScript. La razón del cambio de nombre fue exclusivamente
por marketing, ya que Java era la palabra de moda en el mundo informático y de Internet de la
época.
La primera versión de JavaScript fue un completo éxito y Netscape Navigator 3.0 ya
incorporaba la siguiente versión del lenguaje, la versión 1.1. Al mismo tiempo, Microsoft
lanzó JScript con su navegador Internet Explorer3. JScript era una copia de JavaScript al que
le cambiaron el nombre para evitar problemas legales.
1.6.2. Incluir JavaScript en los documentos
La integración de JavaScript y XHTML es muy flexible, ya que existen al menos tres formas
para incluir código JavaScript en las páginas web.
El código JavaScript se encierra entre etiquetas <script> y se incluye en cualquier parte del
documento. Aunque es correcto incluir cualquier bloque de código en cualquier zona de la
página, se recomienda definir el código JavaScript dentro de la cabecera del documento
(dentro de la etiqueta<head>) :
15
Figura 7
Incluir JavaScript en el documento HTML
if … else: tiene 3 formas de utilizarlo (de la más simple cone el if solo, o la forma más
compleja que es con if … else if …).
Estructura de control If
Esta es la estructura más sencilla del lenguaje. La palabra if (en inglés) significa si
(condicional), si tú al hacer la estructura te preguntas… «si pasa esto, hago lo siguiente…»
Figura 8
Estructura If JavaScript
De esta forma siempre controlamos el flujo del programa, si no se cumple una se cumple la
otra. En este ejemplo, el valor de x = 15, por lo tanto la condición x < 10 no se cumple, por lo
que se ejecuta la instrucción contenida dentro de los paréntesis del else.
16
Estructura de control if…else…..if
Esta forma es la más compleja de la estructura if..else. En la estructura anterior, se controlaba
una condición y si no se cumplía, se optaba por todas las demás opciones infinitas.
A veces, dispones de más alternativas, las cuales quieres controlar y responder de diferentes
formas. En este sentido, tienes la opción de utilizar la sentencia if…else if… tantas veces
como quieras.
Figura 9
Estructura If - Else - If en JavaScript
Como podemos ver en este fragmento de código hemos cubierto todas las posibilidades,
aunque de una forma pragmática e inútil. Pero para el ejemplo, es suficiente.
Se pueden usar tantas estructuras if...else if... como sean necesarias, pero en ese caso es más
adecuado hacer servir la sentencia Switch.
Los bucles ofrecen una manera rápida y sencilla de hacer algo repetidamente. Puedes pensar
en un bucle como una versión "computarizada" de un juego en el que pides a alguien dar X
pasos en una dirección y luego Y (pasos) en otra; por ejemplo, la orden "Da cinco pasos hacia
el Este" podría expresarse de la siguiente forma como bucle:
17
Figura 10
Estructura for en JavaScript
Hay muchas clases diferentes de bucles, pero todos ellos hacen en esencia lo mismo: repetir
una acción un número de veces (y de hecho es posible que este número sea cero). Los
diferentes bucles ofrecen también diferentes formas de determinar sus puntos de inicio y final.
Hay determinadas situaciones que se resuelven más fácilmente con un tipo de bucles que
otros.
Sentencia while
Una sentencia while ejecuta sus sentencias mientras la condición sea evaluada como
verdadera. Una sentencia while tiene el siguiente aspecto:
Si la condición cambia a falsa, la sentencia dentro del bucle deja de ejecutarse y el control
pasa a la sentencia inmediatamente después del bucle.
18
Angular. En su actual versión 9 es más potente y versátil que nunca y es muy sencillo
dominar los aspectos básicos.
Empieza con una instalación global que te permita usar la herramienta desde cualquier
directorio. Comprueba la versión instalada y accede a la ayuda en línea. La ayuda está
disponible tanto de modo general como para cada comando que vayas a usar. (Bastidas, 2017)
Instrucciones para instalar Angular CLI.
Figura 11
Angular Cli
Una vez que hayas instalado el CLI de manera global ya puedes empezar a usarlo en tu
directorio de trabajo. El primer comando será ng new que te va a generar toda una
aplicación funcional y las configuraciones necesarias para su depuración, pruebas y
ejecución.
Como novedad, en las últimas versiones, el CLI te preguntará por algunas opciones para crear
tu aplicación. Eso es porque no todos los desarrollos son iguales. Se puede configurar el tipo,
el estilo y muchas más cosas, tanto de forma interactiva como mediante opciones en línea de
comandos.
Lo más habitual es usar la configuración que viene por defecto, pero también se pueden crear
soluciones a medida. (Basalo, 2020)
19
Figura 12
Inicio rápido de Angular
Una vez finalizada la instalación de todas las librerías necesarias puedes bajar a la carpeta
recién creada y ejecutar el comando standard de npm para el arranque de cualquier aplicación:
npm start. Si todo va bien, en unos segundos podrás visitar http://localhost:4000 para ver en
marcha la aplicación. Lo veremos con más detalle en el apartado de configuración.
1.7.3. Estructura de una aplicación Angular
Según (Basalo, 2020) se menciona que
Una vez generada y comprobada la ejecución, toca estudiar cómo es la estructura de la
aplicación. Para ello revisa carpeta a carpeta. Las malas noticias son que hay una enorme
cantidad de ficheros y carpetas, las buenas son que como verás, casi todo es configuración e
infraestructura.
Si eres completamente nuevo en Angular, te llamará la atención las extensiones .ts. Son para
ficheros TypeScript, una evolución del JavaScript con facilidades para el programador. Por
ahora sólo tienes que familiarizarte con estos:
20
Usando la opción — open (o simplemente -o) nos abrirá automáticamente la aplicación en el
navegador en “http: // localhost: 4200 /”
Figura 13
Página de Inicio de Angular
21
<h1>
{{title}}
</h1>
<app-home></app-home>
Bajo el título de nuestra aplicación debería aparecer lo que está dentro de nuestro
componente. (Bastidas, 2017)
Actividades de Unidad
1. Imprima los 10 primeros valores de la serie Fibonacci: 0,1,1,2,3,5… , en consola
del navegador, empleando el lenguaje JavaScript
2. Imprima el factorial n!, de cada uno de los valores contenidos en un rango inicial
y final ingresados por el usuario, empleando el lenguaje JavaScript
22
Autoevaluación
Seleccione verdadero o falso según corresponda
Tabla 1
Cuestionario de Autoevaluación Unidad 1
Escriba un algoritmo en JavaScript que presente las tablas de multiplicar del 1 al 10,
el rango de multiplicación de cada tabla será del 1 al 12
2.1. Introducción
23
La mayoría de los principales sitios web utilizan alguna forma de tecnología de lado servidor
para presentar dinámicamente datos cuando sean requeridos. Por ejemplo, imagina cuántos
productos están disponibles en Amazon e imagina cuántas entradas han sido escritas en
Facebook. Presentar todo esto usando páginas estáticas completamente diferentes sería
completamente ineficiente, por lo que estos sitios en lugar de ello presentan plantillas
estáticas (construidas usando HTML, CSS, y JavaScript), y actualizan dinámicamente los
datos presentados dentro de esas plantillas cuando se necesiten, ej. cuando quieres ver un
producto diferente en Amazon.
En el mundo moderno del desarrollo web, el aprendizaje del desarrollo de lado servidor es
altamente recomendado.
En esta unidad abordaremos el estudio del Framework Spring, para la creación de API REST
que sea consumida por Angular, emplearemos JPA e Hibernate para la persistencia de datos
con la Base de Datos.
2.2. Objetivos de la unidad
Contenidos
2.3. Api Rest
Hoy por hoy la mayoría de las aplicaciones que se desarrollan para servicios profesionales
disponen de una API REST para el intercambio de información entre el front y el back. Lo
que la hace tan potente es precisamente el aislamiento que proporciona entre la lógica del
back-end y cualquier cliente consumidor de éste. Esto le permite ser usada por cualquier tipo
de cliente: web, móvil, etc. Así, cualquier dispositivo/cliente que entienda de HTTP puede
hacer uso de su propia API REST de manera muy simple. Esto ha hecho que en los últimos
24
años este tipo de arquitectura haya ganado peso frente a otras más complejas como SOAP,
para el intercambio y manipulación de datos. (Glorieta, 2018)
El nombre de la URI no debe contener palabras que impliquen acciones, por lo que deben
evitarse los verbos en su construcción. Además, las URI siguen una jerarquía lógica de capas
que permite ordenar los recursos y englobar las distintas funcionalidades entre sí. Por
ejemplo:
http://tech.tribalyte.eu/category/apps
O bien agregando un cuerpo a la llamada REST en cualquier tipo de formato, siendo los más
usados JSON y XML.
Figura 14
Formato JSON
25
POST: crear un recurso nuevo.
PUT: modificar un recurso existente.
GET: consultar información de un recurso.
DELETE: eliminar un recurso determinado.
PATCH: modificar solamente un atributo de un recurso.
Estos métodos junto con la URI, nos proporciona una interfaz uniforme que nos permite la
transferencia de datos en el sistema REST aplicando operaciones concretas sobre un recurso
determinado. Aunque la mayoría de las operaciones que componen una API REST podrían
llevarse a cabo mediante métodos GET y POST, el abuso de ellos para operaciones que nada
tienen que ver con el propósito con el que se concibieron, puede provocar un mal uso del
protocolo alejado del estándar o la construcción de URIs con nomenclatura errónea mediante
el uso de verbos.
26
Figura 15
Petición realizada con Postman
27
De acuerdo a Gonzáles (2018) se manifiesta que:
En primer lugar, creamos un proyecto maven. Para indicar que queremos utilizar Spring Web
con Spring Boot, añadimos lo siguiente al fichero pom.xml:
Figura 16
Dependencias Iniciales
De este modo, el proyecto que acabamos de crear extiende del proyecto padre spring-boot-
starter-parent, e incluye las dependencias agrupadas en el starter spring-boot-starter-web.
Un starter es un conjunto de dependencias que nos ayudan a cubrir las necesidades de un
tipo de proyecto concreto. Por ejemplo, el starter que estamos utilizando sirve para cubrir las
necesidades de un proyecto web. Más adelante utilizaremos otros starters, entre ellos el que
nos ayuda a integrar MyBatis en la aplicación.
Figura 17
Especificando versión de Java
En este caso, la versión que vamos a emplear será la 1.8. Otra cosa importante es la definición
de una buena estructura de paquetes. Un buen ejemplo puede ser el siguiente:
28
Figura 18
Estructura del Proyecto
Esta estructura de paquetes agrupa las clases en cuatro paquetes principales: mapper para la
capa de acceso a datos, repository para la capa de repositorio, service para la capa de servicio,
y web para la capa controlador.
No hay que seguir este ejemplo al pie de la letra ni mucho menos, es más, puede que la
estructura de paquetes de otros proyectos sea muy distinta pero totalmente válida
Figura 19
Configuración Inicial
29
Nota. Obtenido de (Gonzáles, 2018)
Para no llenar nuestra clase de anotaciones, podemos sustituir las etiquetas @Configuration,
@EnableAutoConfiguration y @ComponentScan por @SpringBootApplication, que
engloba al resto.
Spring Data es un modelo de programación basado en Spring para el acceso a datos. Reduce
la cantidad de código necesario para trabajar con bases de datos y almacenes de datos. Se
compone de varios módulos. Spring Data JPA simplifica el desarrollo de aplicaciones Spring
que utilizan la tecnología JPA.
Con Spring Data, definimos una interfaz de repositorio para cada entidad de dominio en la
aplicación. Un repositorio contiene métodos para realizar operaciones CRUD, ordenar y
paginar datos. @Repository es una anotación de marcador, que indica que la interfaz
subyacente es un repositorio. Un repositorio se crea mediante la extensión de las interfaces de
repositorio específicos, tales como CrudRepository, PagingAndSortingRepository,
o JpaRepository.
Spring Data tiene una integración avanzada con los controladores Spring MVC y proporciona
derivación de consultas dinámicas a partir de nombres de métodos de repositorio.
30
se deben agregar las properties de la base de datos en el archivo “aplication.properties” que es
un archivo donde el Spring relaciona el proyecto con la base de datos. Una vez agregado los
properties el archivo debería lucir de la siguiente forma:
Figura 20
Archivo de configuración de la Base de Datos
En este caso se esta trabajando con una base de datos MYSQL. Una vez hecho esto podrás
comenzar a desarrollar con estas dos herramientas.
31
Figura 21
Clase a ser mapeada
32
Figura 22
Clase Controladora
33
Figura 24
Implementación de Servicio
Después de haber realizado esta serie de pasos solo resta enviar un archivo json al controlador
donde se indiquen los datos del usuario. Esto lo puedes hacer ya sea desde postman o desde un
servicio.
34
La url a la que se debe hacer la solicitud debe ser:
http://localhost:8080/user/saveUser
El objeto JSON que se enviara debe lucir así:
Si se han seguido los pasos correctamente. Este procedimiento debe guardar un registro en la
base de datos.
Actividades de Unidad
1. Indique el código para crear una Relacion OnetoOne de Persona con Signo
Zodiacal, empleando anotaciones de JPA
2. Cree las interfaces y clases necesarias para crear una simple API REST, de un
método que va a devolver una Persona según su correo, empleando la lógica de un
proyecto en Spring Boot
35
Autoevaluación
Seleccione verdadero o falso según corresponda
Tabla 2
Cuestionario de Autoevaluación Unidad 2
36
para trabajar con bases de datos y almacenes de datos
3.1. Introducción
Hoy en día crear una página web resulta mucho más sencillo que hace unos años atrás,
además de cómodo y económico. Todo esto ha sido posible gracias a la aparición de los
denominados gestores de contenido o CMS, los cuales permiten crear contenido online sin la
necesidad de contar con conocimientos avanzados de programación.
Un sistema de gestión de contenidos o CMS (Content Manager System) es un programa o
aplicación web que permite la creación de una estructura de soporte para la creación,
administración y publicación de contenido en una página web por parte de administradores,
editores y otros usuarios. (Bartolome, 2018)
En esta unidad abordaremos tres de los gestores de contenidos mas utilizados en el mundo, los
cuales son WordPress, Drupal y Joomla
3.2. Objetivos de la unidad
37
Contenidos
3.3. Software Xampp
Según Bartolome (2018) se manifiesta que:
Es un servidor independiente de plataforma, software libre, que consiste principalmente en la
base de datos MySQL, el servidor Web Apache y los intérpretes para lenguajes
de script: PHP y Perl. El nombre proviene del acrónimo de X (para cualquiera de los diferentes
sistemas operativos), Apache, MySQL, PHP, Perl. El programa está liberado bajo la licencia
GNU y actúa como un servidor Web libre, fácil de usar y capaz de interpretar páginas
dinámicas. Actualmente XAMPP esta disponible para Microsoft Windows, GNU/Linux, Solaris,
y MacOS X.
38
aparece si está activado el Control de Cuentas de Usuario y recuerda que algunos directorios
tienen permisos restringidos:
Figura 25
Instalación de la herramienta Xampp
39
La siguiente pantalla ofrece información sobre los instaladores de aplicaciones para XAMPP
creados por Bitnami. Haga clic en el botón "Next" para continuar. Si deja marcada la casilla,
se abrirá una página web de Bitnami en el navegador.
Durante la instalación, si en el ordenador no se había instalado Apache anteriormente, en
algún momento se mostrará un aviso del cortafuegos de Windows para autorizar a Apache a
comunicarse en las redes privadas o públicas. Una vez elegidas las opciones deseadas (en
estos apuntes se recomienda permitir las redes privadas y denegar las redes públicas), haga
clic en el botón "Permitir acceso".
Figura 27
Aviso de cortafuegos de Windows
40
Figura 28
Panel de Control de Xampp
Se pueden abrir varios paneles de control simultáneamente y cualquiera de ellos puede iniciar
o detener los servidores, pero no es aconsejable hacerlo ya que puede dar lugar a confusiones
(por ejemplo, al detener un servidor desde un panel de control los otros paneles de control
interpretan la detención como un fallo inesperado y muestran un mensaje de error).
3.3.5. Iniciar servidores
Para poner en funcionamiento Apache (u otro servidor), hay que hacer clic en el botón "Start"
correspondiente, si el arranque de Apache tiene éxito, el panel de control mostrará el nombre
del módulo con fondo verde, su identificador de proceso, los puertos abiertos (http y https), el
botón "Start" se convertirá en un botón "Stop" y en la zona de notificación se verá el resultado
de las operaciones realizadas.
Figura 29
Ejecución de Xampp
41
Si se ha iniciado el servidor Apache, para comprobar que todo funciona correctamente, hay
que escribir en el navegador la dirección http://localhost. XAMPP abrirá el nuevo panel de
administración web (dashboard).
3.4. WordPress
WordPress es un sistema de gestión de contenidos (CMS) que permite crear y mantener un
blog u otro tipo de web. Con casi 10 años de existencia y más de un millar de temas
(plantillas) disponibles en su web oficial, no es solo un sistema sencillo e intuitivo para crear
un blog personal, sino que permite realizar toda clase de web más complejas.
WordPress dispone de un sistema de plugins, que permiten extender las capacidades de WordPress, de
esa forma se consigue un CMS más flexible. (WebEmpresa, 2020)
3.4.1. Instalación
Según Alonso (2020) se manifiesta que:
Una vez que tiene su servidor arrancado y una base de datos creada, va a ver que instalar
WordPress en local es muy sencillo
Lo primero que debe hacer es descargar el fichero .zip con la última versión de
WordPress desde la página oficial de WordPress.
Mueva este fichero a la carpeta C:\xampp\htdocs\ que es la carpeta de XAMPP que
hace de servidor local.
Tiene que descomprimir el fichero para que extraiga el contenido directamente en C:\
xampp\htdocs\.
Así se creará una carpeta nueva llamada «wordpress» que contiene todo lo necesario
para instalar tu WordPress desde cero.
42
Figura 30
Instalación de WordPress
43
Figura 31
Datos de la página para instalación de WordPress
44
La potencialidad de este gestor de contenidos, que es Drupal en español, es que cuenta con
una tecnología avanzada para crear todo tipo de páginas web. Como desarrollador, tendrás
miles de opciones para gestionar tu sitio de una forma muy fácil y rápida. Drupal combina
correctamente los módulos para que desarrolles un blog, una tienda virtual, una página
educativa, todo dependerá de tu imaginación.
Muchas de las ventajas, en comparación con otros CMS, es que ofrece versatilidad para los
desarrolladores al momento de crear las paginas web, por otra parte, es más fácil la utilización
de la plataforma y permite personalizar mejor tu pagina web.
45
La instalación de Drupal es similar a la de WordPress, primeramente, debe irse a la página
oficial https://www.drupal.org/download y descargar la última versión estable, por lo
general se descarga un archivo comprimido .rar o .zip, este archivo debe descomprimirlo en la
carpeta htdocs del Xampp, seguidamente ejecuta los servicios del Xampp y se dirige al
navegador para colocar la url localhost/nombreCarpetaDescomprimida, luego debe seguir los
pasos que le pide el instalador y listo.
Figura 32
Instalación finalizada de Drupal
Debido a su estructura flexible y adaptable, no existen límites en lo que puedes llegar a hacer
con Joomla. Es por esta razón que se convierte en la solución perfecta para sitios web de
pequeñas, medianas y grandes empresas. Lo que diferencia a Joomla de sus competidores es
la dedicación para dejar que todo sea lo más simple posible y entregar la mayor cantidad de
caracteristicas al usuario. Joomla entrega las herramientas necesarias a todos los usuarios para
poder construir sus sitios web y corree sus aplicaciones en linea.
46
Sistema de Administración sencillo y avanzado: con una interfaz de administración
clara y concreta que le permitirá gestionar todos los aspectos fundamentales clave de
un sitio web y sus contenidos.
Organización del sitio web: Joomla! está preparado para organizar eficientemente los
contenidos de su sitio en secciones y categorías, lo que facilita la navegabilidad para
los usuarios y permite crear una estructura sólida, ordenada y sencilla para los
administradores. Desde el panel administrador de Joomla! usted podrá crear, editar y
borrar las secciones y categorías de su sitio de la manera en que más le convenga.
Publicación de contenidos: con Joomla! CMS podrá crear páginas ilimitadas y
editarlas desde un sencillo editor, basado en WYSIWYG*, que permite formatear los
textos con los estilos e imágenes deseados. Los contenidos son totalmente editables y
modificables.
Escalabilidad e implementación de nuevas funcionalidades: Joomla! ofrece la
posibilidad de instalar, desinstalar y administrar componentes y módulos, que
agregarán servicios de valor a los visitantes de su sitio web, por ejemplo: galerías de
imágenes, foros, newsletters, clasificados, etc.
Internacionalización: la interfaz de Joomla! se encuentra traducida a muy diversos
idiomas.
Administración de usuarios: Joomla! permite almacenar datos de usuarios registrados
y también la posibilidad de enviar e-mails masivos a todos los usuarios. La
administración de usuarios es jerárquica, pues los distintos grupos de usuarios poseen
diferentes niveles de permisos dentro de la gestión y administración del sitio.
Diseño y aspecto estético del sitio: es posible cambiar todo el aspecto del sitio web tan
solo con un par de clics, gracias al sistema gestor de plantillas (templates) que utiliza
Joomla!
Navegación y menús: la administración de los menús permite tomar decisiones rápidas
y sencillas sobre la navegación que queremos en nuestro sitio web.
Administrador de archivos multimedia: Joomla! posee una utilidad para subir
imágenes, videos, archivos de sonido, al servidor para ser usados en todo el sitio.
Disposición de módulos modificable: en un sitio creado con Joomla!, la posición de
módulos puede acomodarse como se prefiera.
Encuestas: Joomla! posee un sistema de votaciones y encuestas dinámicas con
resultados en barras porcentuales.
Feed de Noticias: Joomla! trae incorporado un sistema de sindicación de noticias por
RSS de generación automática.
Publicidad: es posible hacer publicidad en el sitio usando el Administrador de
Banners.
Estadísticas de visitas: con información de navegador, sistema operativo y detalles de
los documentos (páginas) más vistos. (Instituto de Tecnologías Educativa, 2019)
3.6.2. Características de publicación de páginas web en Joomla:
47
puede programarse para que se publique automáticamente al llegar una determinada
fecha, y luego despublicarse también de forma automática en otra fecha.
Archivo e historial: las páginas viejas o publicaciones que hayan perdido vigencia
pueden enviarse a un "archivo" de almacenamiento, sin necesidad de tener que
borrarlas. Esto permite también dar la posibilidad a los navegantes de consultar
artículos viejos o documentos anteriores en un historial.
Formatos de lectura: cada documento es generado automáticamente por Joomla! en
formato PDF, en versión imprimible, y en XML.
Envío por correo electrónico: los usuarios del sitio Joomla! podrán enviar
automáticamente a un amigo por correo electrónico cada documento publicado.
Valoración de contenidos: los visitantes del sitio podrán votar la calidad de lo
publicado.
Comentarios: (opcional) los usuarios podrán comentar sus opiniones o expresar sus
inquietudes en la misma página de contenidos. (Instituto de Tecnologías Educativa,
2019)
48
Nota. Obtenido de (Instituto de Tecnologías Educativa, 2019)
Actividades de Unidad
1. Realice un cuadro comparativo de las ventajas y desventajas de los diferentes CMS,
vistos en esta unidad
Autoevaluación
Seleccione verdadero o falso según corresponda
Tabla 3
Cuestionario de Autoevaluación Unidad 3
49
WordPress tiene plantillas únicamente de paga
Los CMS permiten crear páginas web sencillas y profesionales en le
menor tiempo posible
4. Unidad 4: Seguridad y Modo Producción
4.1. Introducción
Hasta la aparición y difusión del uso de los sistemas informáticos, toda la información de
interés de una organización se guardaba en papel y se almacenaba en grandes cantidades de
abultados archivadores. Datos de los clientes o proveedores de la organización, o de los
empleados quedaban registrados en papel, con todos los problemas que luego acarreaba su
almacenaje, transporte, acceso y procesado.
50
Existen también diferentes definiciones del término Seguridad Informática. De ellas nos
quedamos con la definición ofrecida por el estándar para la seguridad de la información
ISO/IEC 27001, que fue aprobado y publicado en octubre de 2005 por la International
Organization for Standardization (ISO) y por la comisión International Electrotechnical
Commission (IEC).“La seguridad informática consiste en la implantación de un conjunto de
medidas técnicas destinadas a preservar la confidencialidad, la integridad y la disponibilidad
de la información, pudiendo, además, abarcar otras propiedades, como la autenticidad, la
responsabilidad, la fiabilidad y el no repudio.” (Tecnologias Informacion, 2018)
51
En términos de disponibilidad, el gigante Amazon es un excelente ejemplo, ya que debe
estar disponible los 365 días del año sin fallas. Algunos sitios web de empresas, sin
embargo, pueden permitirse entrar en mantenimiento por unos días o algo por el estilo.
Existen múltiples herramientas a disposición. Cada empresa puede elegir las herramientas que
necesite a su gusto para que formen parte de su política general de seguridad. Compartimos
algunas de estas herramientas a continuación.
Control de acceso
Luego de la autenticación viene el control de acceso, que se asegura de que solo las personas
adecuadas o autorizadas puedan ver, modificar, agregar y/o eliminar la información. Existen
varios modelos diferentes de control de acceso. Aquí analizaremos dos: la lista de control de
acceso (ACL) y el control de acceso basado en roles (RBAC).
Las listas de control de acceso son muy útiles en las empresas. A cada usuario, el
administrador le asigna capacidades específicas: leer, editar, eliminar, agregar, etc. Así que
52
solo los usuarios con esas capacidades en concreto pueden ejercer las funciones. Y si alguien
no está en la lista ni siquiera sabe que existe. (Tecnologias Informacion, 2018)
Este sistema de listas es fácil de entender y mantener, pero cada recurso de información se
administra por separado. Eso significa que eliminar un usuario o un conjunto de recursos de
información es bastante difícil. Y mantener esta herramienta cuando se unen cada vez más
usuarios se hace más complicado. Por eso existe el control de acceso basado en roles o
RBAC. En este caso a los usuarios se les asignan roles y a esos roles se les otorga el acceso.
Esto permite a los administradores administrar usuarios y roles por separado, simplificando la
administración y mejorando la seguridad.
Cifrado
En (Sistemas Informacion Site, 2016) se afirma que:
Cuando una organización o empresa necesita trasmitir datos a través de internet o por medios
externos como un CD o una unidad flash, entra en juego el cifrado. En estos casos es probable
que una persona ajena tenga acceso a pesar de la autenticación y el control de usuario. Así que
el cifrado funciona como un proceso de codificación de datos en su transmisión o
almacenamiento para que solo las personas autorizadas puedan leerlo.
Se logra la codificación a través de programas de computación que codifican el texto plano
que necesita ser trasmitido. Entonces el destinatario recibe el texto cifrado y lo decodifica
(descifrado), y para que así sea, remitente y destinatario deben haber acordado un método de
decodificación. Ambas partes comparten la clave y a esta estrategia se le conoce
como cifrado de clave simétrica. Pero tiene sus complicaciones, ya que la clave está
disponible en dos lugares al mismo tiempo.
Sin embargo, una buena opción es el cifrado de clave pública. En este sistema se utilizan dos
claves: una pública y una privada. Para enviar un mensaje cifrado, obtiene la clave pública,
codifica el mensaje y lo envía. El destinatario al recibirlo usa la clave privada y lo decodifica.
Así, múltiples usuarios con la clave pública pueden enviar un mensaje cifrado al destinatario
que los recibe a través de la clave privada. Cada usuario simplemente necesita una clave
privada y una pública para asegurar los mensajes.
4.4. Herramientas de identificación de vulnerabilidades
53
reportarlo para que se solucione. La herramienta imprescindible para esta tarea con los
escáneres de vulnerabilidades.
Un escáner de vulnerabilidades es un software diseñado para realizar análisis automáticos de
cualquier aplicación, sistema o red en busca de cualquier posible vulnerabilidad que exista.
Aunque estas aplicaciones no son capaces de detectar la vulnerabilidad con total precisión, sí
son capaces de detectar ciertos elementos que podrían desencadenar en una vulnerabilidad,
facilitando enormemente el trabajo a los investigadores e ingenieros. Hay varios tipos de
escáneres de vulnerabilidades, autenticados, en los que se realizan pruebas y ataques
potenciales desde la propia red, y no autenticados, en los que el investigador o hacker ético se
intenta hacer pasar por un pirata informático simulando un ataque desde fuera para ver hasta
dónde es capaz de llegar analizando (y explotando) posibles vulnerabilidades.
A continuación, se presentan un conjunto de herramientas utilizadas para descubrir
vulnerabilidades en los sistemas informáticos
Nmap
Según (A2Secure, 2019) se manifiesta lo siguiente:
Este software es uno de los más utilizados para buscar hosts dentro de una red, así como para
buscar los puertos abiertos a través de los cuales poder conectarnos a un sistema de forma remota
e incluso recoger información sobre todos los hosts de una red, como el sistema operativo que
utiliza o los servicios que tiene habilitados en un determinado puerto. Este programa es de
código abierto y multiplataforma, aunque lo más normal es utilizarlo en sistemas operativos
Linux para realizar la tarea de pentesting. Este software tiene una gran cantidad de opciones
avanzadas, y, además, dispone de una interfaz gráfica de manera opcional llamada Zenmap.
Wireshark
Continuando con las auditorías de redes, Wireshark es el analizador de paquetes y protocolos
por excelencia. Esta aplicación es capaz de registrar absolutamente todos los paquetes que pasan
por una red, recogerlos y poder filtrarlos y ordenarlos de multitud e formas para poder analizar
cómodamente todo el tráfico. Esta herramienta además es capaz de descifrar los paquetes
enviados a través de los principales protocolos de conexión segura para poder analizar sin
problema su contenido.
Sin duda, la mejor aplicación que podemos encontrar para analizar cualquier red y poder detectar
cualquier posible fuga de tráfico o conexiones que intenten explotar un fallo de seguridad. Es
compatible con sistemas operativos Windows y Linux, además, soporta una gran cantidad de
extensiones que utilizan otros programas a la hora de capturar el tráfico, de esta forma, podremos
analizar todo el tráfico más tarde. (De luz, 2020)
Openvas
54
abiertos, fallos de configuración, posibles vulnerabilidades conocidas en el software del equipo o
servidor, etc.
Este programa se puede ejecutar tanto desde dentro de una red como desde un servidor externo,
simulando así un ataque real. Cuando finaliza nos genera un completo informe con todas las
posibles debilidades que pueden suponer un peligro para nuestra seguridad. Además, podemos
configurarlo en modo monitorización continua, estableciendo alertas que saltarán cuando se
detecte el más mínimo fallo.
OpenVAS es una herramienta completamente gratuita que nos permitirá realizar una gran
cantidad de pruebas de vulnerabilidad contra servidores web, además, tiene una gran comunidad
detrás de ella para darle soporte e incorporar nuevas funcionalidades para exprimir al máximo
todo su potencial.
Owasp Zen Attack
El proyecto OWASP (Open Web Application Security Project) es un proyecto abierto y sin
ánimo de lucro pensado para mejorar la seguridad de las redes, los servidores, equipos y las
aplicaciones y servicios con el fin de convertir Internet en un lugar más seguro. Zed Attack
Proxy, ZAP, es una de las herramientas libres de este proyecto cuya principal finalidad es
monitorizar la seguridad de redes y aplicaciones web en busca de cualquier posible fallo de
seguridad, mala configuración e incluso vulnerabilidad aún desconocida que pueda suponer un
problema para la red. (A2Secure, 2019)
4.5. Publicación de sitios Web
55
Figura 34
Proyecto con framework Angular
Puede ser una buena solución para no interferir en otros directorios que puedan contener otras
aplicaciones o páginas web donde no sea necesario configurar esto.
Además con este archivo, cuando refresquemos la página no obtendremos un error 404 de
Page no Found (Montoto, 2018)
56
Figura 35
Configuración de servidor Apache
Lo más probable es que ambos perfiles lleven perfiles de Spring Boot distintos para en el caso
de «jar» hacer uso de un datasource local, y para el caso de «war» hacer uso del datasource
que previamente tiene que estar definido en el servidor de aplicaciones donde se vaya a
desplegar el war.
58
Comprobarás que en la carpeta «target» se ha generado en esta ocasión un war, que poder
desplegar dependiendo del servidor de aplicaciones objetivo.
Actividades de Unidad
2. Realice un mapa mental de los contenidos vistos en las 4 unidades de esta
asignatura, a manera de resumen
Autoevaluación
Seleccione verdadero o falso según corresponda
Tabla 4
Cuestionario de Autoevaluación Unidad 4
59
organización asegurar la confidencialidad, integridad y
disponibilidad de su sistema de información.
Bibliografía
60
Juanda, M. (2019). Conceptos generales de API REST. Recuperado de:
https://juanda.gitbooks.io/webapps/content/api/arquitectura-api-rest.html
Glorieta, M. (20 de enero de 2018). ¿Qué son las APIs REST?. Recuperado de:
https://tech.tribalyte.eu/blog-que-es-una-api-rest
61
Tecnologias Informacion. (12 de marzo de 2018). Seguridad en los sistemas de información.
Recuperado de: https://sistemasinformacionsite.wordpress.com/2016/02/10/seguridad-
en-los-sistemas-de-informacion/
Montoto, J. (2 de mayo de 2018). Desplegando una app Angular en Apache. Recuperado de:
https://www.javimontoto.com/2018/05/02/desplegar-app-de-angular-con-apache/
Vince, M. (13 de noviembre de 2017). Desplegando una app Angular. Recuperado de:
https://angular5col.blogspot.com/2017/11/angular-xampp.html
Pardo, J. (07 de enero de 2020). Desplegando una app Spring Boot. Recuperado de:
https://www.adictosaltrabajo.com/2018/12/13/spring-boot-war-o-jar-ambos/
Anexos
62
Escriba un algoritmo en JavaScript que presente las tablas de multiplicar del 1 al 10,
el rango de multiplicación de cada tabla será del 1 al 12
Ejercicio
Resultado
63
Anexo 2. Solucionario de la Autoevaluación de la segunda Unidad
Ejercicio
64
Anexo 3. Solucionario de la Autoevaluación de la segunda Unidad
65
La Seguridad de la Información se puede definir como conjunto
de medidas técnicas, organizativas y legales que permiten a la
organización asegurar la confidencialidad, integridad y V
disponibilidad de su sistema de información.
66