• No se han encontrado resultados

1. Los cimientos: el enfoque general del sitio web

1.1.8. Seguridad de Información en las Aplicaciones Web

1.1.8.4. Vulnerabilidad

Es una necesidad o debilidad es un activo, las vulnerabilidades son las siguientes:

• La necesidad de suministro eléctrico

• Un equipo sin antivirus.

• Puertas abiertas (lógicas y físicas).

• Lugar no adecuado.

Una vulnerabilidad, por si misma no produce daños. Es un condicionante para que una amenaza afecte un activo.

Por ejemplo, que este libre el acceso que da al servidor no produce en si un daño, pero es un condicionante para que una persona no autorizada acceda al mismo y lo provoque. (Perez, 2016)

1.1.8.5. Riesgo

El riesgo es el potencial de explotación de una vulnerabilidad de un activo por una amenaza, es la probabilidad o posibilidad de que una amenaza dada aproveche una vulnerabilidad para dañar un activo o grupo de activos de información.

Por ejemplo, si tenemos un equipo que accede a internet y al correo electrónico sin antivirus, la amenaza de infección por virus explotara la vulnerabilidad del equipo (no tiene antivirus) para causar una infección. En este caso, el riesgo de infección es muy alto. (Perez, 2016)

1.1.9. Herramientas de Desarrollo 1.1.9.1. Apache

El servidor HTTP Apache es un código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y el sitio virtual según la normativa RFC 2616. Cuando empezó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero fue reescrito más tarde por completo. Su nombre se debe a que alguien deseaba que tuviese la connotación de algo que es firme y enérgico, pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de Estados Unidos, y en esos momentos la inquietud de su grupo era que llegasen las empresas y "civilizasen" lo que habían creado los primeros ingenieros de internet. Además, Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server, suena igual que Apache Server. (Wikipedia, 2019)

El servidor Apache es desarrollado y mantenido por una sociedad de usuarios bajo el control de la Apache Software Foundation dentro del proyecto HTTP Server (HTTPd).

Apache enseña entre sus características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue reprobado por la falta de una interfaz gráfica que ayude en su configuración. (Wikipedia, 2019)

Apache tiene amplia aprobación en la red: desde 1996, Apache es el servidor HTTP más usado. Jugó un papel elemental en el desarrollo de la World Wide Web y alcanzó su máxima cuota de mercado en 2005, siendo el servidor más usado en el 70% de los sitios web en el mundo. Sin embargo, ha sufrido una decadencia en su cuota de mercado en los últimos años (estadísticas históricas y de uso diario proporcionadas por Netcraft2). En 2009, se convirtió en el primer servidor web que albergo más de 100 millones de sitios web.3. La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden activar remotamente en ciertas situaciones, o explotar por los usuarios locales maliciosos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache. (Wikipedia, 2019)

1.1.9.2. PHP

Es uno de los primeros lenguajes utilizado para aplicaciones web dinámicas. Desarrollado en 1994 por Rasmus Lerdorf, a lo largo del tiempo ha tenido considerables cambios y adaptaciones (desde PHP3 HASTA PHP5) que integran mejoras sobre el motor Zend. Incluye una interfaz de línea de comandos, soporte de datos XML y adaptación al protocolo IP versión 6; el código es interpretado por un servidor web, que luego puede ser utilizado en diferentes servidores y en distintos sistemas operativos y plataformas.

PHP cuenta con una extensa biblioteca de funciones, entre las que se incluye cálculos matemáticos complejos y conexiones de red. Entre muchas otras, además de la gran capacidad que tiene para la gestión de diferentes bases de datos como MySQL, Oracle y otras para el tratamiento de correo electrónico y manejo de archivos. Es un lenguaje de programación libre que cuenta con una gran cantidad de funciones y una vasta comunidad de usuarios y desarrolladores, lo cual lo hace un lenguaje maduro y de gran aceptación. Su codificación también se incrusta dentro de HTML. (Gutierrez Angel; Lopez Jose, 2017)

1.1.9.3. Base de datos

Los autores (Silberschatz, Korth, & Sudarshan, 2014) indica que un sistema de gestor de bases de datos (SGBD) consiste en una recopilación de datos interrelacionados y un grupo de programas para acceder a dichos datos. La colección de datos, normalmente denominada base de datos, contiene información destacada para una empresa. El objetivo principal de un SGBD es facilitar una forma de almacenar y recuperar la información de una base de datos de manera eficiente. las bases de datos se diseñan para gestionar grandes cantidades de información.

La administración de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la misma, además los sistemas de bases de datos deben garantizar la fiabilidad de la información almacenada, a pesar de las caídas y de los intentos de accesos no autorizados. Si los datos van hacer divididos entre diferentes usuarios el sistema debe eludir posibles resultados anómalos.

1.1.9.3.1. Aplicaciones de los Sistemas de Bases de Datos

las bases de datos se usan considerablemente. Algunas de sus aplicaciones representativas son:

• Banca: para información de los clientes, préstamos, transacciones bancarias y cuentas.

• Universidades: para aviso de los estudiantes, matrículas en las asignaturas y cursos.

• Transacciones de tarjetas de crédito: para adquisición con tarjeta de crédito y la generación de los extractos mensuales.

• Líneas aéreas: para reservas e información de horarios. Las líneas aéreas fueron de las primeras en usar las bases de datos de forma distribuida geográficamente.

• Finanzas: para acumular información sobre compañías tenedoras, ventas y compras de productos financieros, como acciones y bonos; también para acumular datos del mercado en tiempo real para permitir a los clientes la compraventa en línea y a la compañía la compraventa automática.

• Ventas: para aviso de clientes, productos y compras.

• Comercio en línea: para los datos de ventas ya mencionados y para el alcance de los pedidos Web, generación de listas de recomendaciones y mantenimiento de evaluaciones de productos en línea.

• Producción: para la gestión ele la cadena de proveedores y para el alcance de la producción de artículos en las factorías, inventarios en los almacenes y pedidos.

• Telecomunicaciones: para almacenar un registro de las llamadas realizadas, generar las facturas mensuales, mantener el saldo de las tarjetas telefónicas de prepago y para acumular información sobre las redes de comunicaciones. (Silberschatz, Korth, & Sudarshan, 2014)

Las últimas décadas del siglo anterior se extendió el uso de la sistematización de procesos en las empresas, sean estas grandes o pequeñas, dichos sistemas almacenaban sus datos en archivos o en las denominadas bases de datos.

El uso de las bases de datos se ha extendido tanto que hoy se las maneja directamente, por ejemplo, cuando se retira dinero de un cajero se está actuando mediante una interface conectada directamente a una base de datos de los clientes del banco respectivo. (Ramez, Elmasri; Shamkant, Navathe, 2012)

El diseño de bases de datos se refiere en el diseño de la estructura de la base datos que se usa para guardar y administrar datos del usuario final. Una base de datos que satisfaga todas las necesidades de un usuario no ocurre así nada más, sino que se estructura debe ser diseñada cuidadosamente, de hecho, el diseño de una base de datos es un aspecto importante para trabajar con bases de datos. (Morris, 2011)

El autor (Morris, 2011) dice que un sistema de administración de bases de datos (DBMS, por sus siglas en inglés) es un conjunto de programas que maneja la estructura de la base de datos y controla el acceso a los datos guardados en ella. En cierto sentido, una base de datos se asemeja a un muy bien organizado gabinete electrónico de archivos en el que un poderoso software, conocido como sistema de administración de base de datos, ayuda a manejar el contenido del gabinete.

Documento similar