UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES
UNIANDES
FACULTAD DE SISTEMAS MERCANTILES
CARRERA DE SISTEMAS
TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO
EN SISTEMAS E INFORMÁTICA
TEMA: “APLICACIÓN WEB PARA LA GESTIÓN DE VENTAS DE
LA EMPRESA REDYCOM”
AUTOR: VELÁSQUEZ PUGA CHRISTIAN DANILO
ASESOR: ING. LUIS SUÁREZ
IBARRA – ECUADOR
II
CERTIFICACIÓN
Una vez culminado el estudio de investigación por parte del Sr. Christian Danilo Velásquez Puga cuyo tema es.
“APLICACIÓN WEB PARA LA GESTIÓN DE VENTAS DE LA EMPRESA REDYCOM”
Certifico:
Que el mencionado trabajo es auténtico y original, cumple con los aspectos: técnico-metodológico y las normas establecidas por la Universidad Regional Autónoma de los Andes, UNIANDES.
Por lo tanto, autorizo su presentación para el trámite de sustentación correspondiente.
Ibarra, Mayo de 2014
___________________________________________
Ing. Luis Suárez
III
DECLARACIÓN DE AUTORÍA
Yo, Christian Danilo Velásquez Puga, con cédula de ciudadanía número 1002587093; declaro que soy autor intelectual del presente proyecto, que es original y auténtico. Todos los efectos académicos y legales que se desprendan de este proyecto serán de mi exclusiva responsabilidad.
Ibarra, Abril de 2014
_________________________________________
Christian Danilo Velásquez Puga
IV
ÍNDICE GENERAL
INTRODUCCIÓN ... 1
Planteamiento del problema... 1
Formulación del problema ... 2
Delimitación del problema ... 2
Objeto de investigación y campo de acción ... 2
Identificación de la línea de investigación... 2
Objetivos ... 3
Objetivo general ... 3
Objetivos específicos ... 3
Hipótesis o idea a defender ... 3
Justificación del tema ... 3
Metodología investigativa a emplear ... 4
Resumen de la estructura de la tesis ... 4
Elementos de novedad ... 4
CAPITULO I ... 6
MARCO TEÓRICO ... 6
1.1. Procesos de gestión ... 6
1.2. Gestión de ventas..………….,………...6
1.2.1. El Enfoque hacia el cliente ... 7
1.2.2. El Equipo de Ventas ... 7
1.2.3. El Proceso de Venta ... 8
1.2.3.1. Exploración ... 8
1.2.3.2. Acercamiento:... 8
1.2.4. Presentación del mensaje de ventas ... 8
1.2.5. Servicios posventa ... 9
1.2.6. La Supervisión del Equipo de ventas ... 10
1.2.7. La Comunicación en las Ventas ... 10
1.3. Sistemas de información ... 11
1.3.1. Entrada de Información... 11
V
1.3.3. Procesamiento de Información ... 12
1.3.4. Salida de Información ... 12
1.3.5. Ciclo de vida de los Sistemas de Información. ... 13
1.4. Aplicaciones Web ... 14
1.4.1. Características de las Aplicaciones Web: ... 15
1.4.2. Diseño Web ... 15
1.4.3. Herramientas de desarrollo ... 16
1.4.3.1. Servidor Apache ... 16
1.4.3.2. Lenguaje de programación Php ... 18
1.4.3.3. Base de datos Mysql ... 19
1.4.3.4. Java ... 21
1.4.3.5. Javascript ... 22
1.4.3.6 Flash ... 23
1.5. Seguridades ... 24
1.5.1. Autenticación... 25
1.5.2. Autorización ... 25
1.5.3. Registro y Auditoria ... 25
1.5.4. Tipo de amenazas ... 25
1.5.4.1. Suplantación ... 25
1.5.4.2. Manipulación ... 26
1.5.4.3. Repudio ... 26
1.5.4.4. Revelación de información... 26
1.5.4.5. Denegación de servicio ... 26
1.5.4.6. Concesión de privilegio ... 27
1.5.4.7. Ejecutar aplicaciones con privilegios mínimos ... 27
1.5.5. Seguridad en la base de datos ... 27
1.5.5.1. Manipulación de parámetros ... 28
1.5.5.2. Manipulación de campos ocultos ... 28
1.6. Certificaciones ... 28
1.6.1. Autoridad de certificación ... 29
1.6.2. Solicitud de un certificado ... 30
1.7. Conceptos Básicos ... 30
VI
1.7.2. Web Hosting ... 30
1.7.3. Red ... 30
1.7.4. LAN ... 30
1.7.5. WAN ... 30
1.7.6. MAN ... 31
1.7.7. World wide web ... 31
1.7.8. Protocolo FTP... 31
1.7.9. Protocolo HTTP... 31
1.7.10. URL ... 31
1.8. Conclusiones parciales ... 31
CAPITULO II ... 33
MARCO METODOLÓGICO Y PLANTEAMIENTO DE LA PROPUESTA ... 33
2.1. Caracterización y contextualización de la investigación ... 33
2.2. Descripción metodológica ... 33
2.3. Población ... 35
2.4. Determinación de la muestra ... 36
2.5. Interpretación de resultados ... 38
2.6. Evaluación y análisis de la información obtenida a través de la entrevista ... 49
2.7. Conclusiones de resultados ... 49
CAPITULO III ... 51
DESARROLLO DE LA PROPUESTA ... 51
3.1. Análisis de requerimientos ... 60
3.1.1. Requerimientos de hardware ... 60
3.1.2. Requerimientos de software ... 61
3.1.3. Personal Involucrado ... 61
3.1.4. Diagrama de flujo de datos ... 62
3.1.4.1. Diagrama de flujo de datos Nivel 0 ... 63
3.1.4.2. Diagrama de flujo de datos Nivel 1 ... 63
3.1.5. Recursos ... 64
3.1.5.1. Recursos tecnológicos ... 64
3.1.5.2. Recursos económicos ... 64
3.1.5.3. Resumen ... 65
VII
3.2.1. Base de Datos Redycom ... 66
3.2.2. Diccionario de datos ... 67
3.2.3. Diseño de interfaces ... 68
3.3. Implementación ... 71
3.3.1. Conexión a la base de datos. ... 71
3.3.2. Codificación ... 72
3.3.2.1. Código para insertar datos ... 72
3.3.2.2. Código para actualizar datos ... 73
3.3.2.3. Código para eliminar datos ... 73
3.3.2.4. Código de búsqueda de datos ... 74
3.3.2.5. Código para reportes Pdf ... 74
3.3.3. Validación de datos... 75
3.3.4. Ejecución de la aplicación ... 77
3.4. Pruebas... 77
3.4.1. Prueba de velocidad ... 78
3.4.2. Prueba con datos falsos ... 78
3.4.3. Prueba de velocidad en navegadores ... 79
3.4.4. Pruebas de software ... 80
3.5. Mantenimiento ... 82
3.6. Conclusiones parciales del capítulo ... 82
CONCLUSIONES ... 83
RECOMENDACIONES ... 84 BIBLIOGRAFÍA
VIII
ÍNDICE DE GRÁFICOS
Gráfico 1 Diagrama del proceso de información. ... 13
Gráfico 2 Esquema de aplicación web. ... 15
Gráfico 3 Medio a través del cual conoció a la empresa. ... 38
Gráfico 4 Compras por internet. ... 39
Gráfico 5 Productos ofertados en internet. ... 40
Gráfico 6 Acceso a información de productos. ... 41
Gráfico 7 Satisfacción de productos ofertados. ... 42
Gráfico 8 Agilidad en la atención. ... 43
Gráfico 9 Calidad de la información recibida. ... 44
Gráfico 10 Captación de clientes. ... 45
Gráfico 11 Cuenta de correo de clientes. ... 46
Gráfico 12. Recibir información en cuenta de correo ... 47
Gráfico 13 Compra y cotizaciones vía internet. ... 48
Gráfico 14. Organigrama estructural ... 54
Gráfico 15. Proceso de compra ... 56
Gráfico 16. Proceso de ventas ... 58
Gráfico 17. Proceso de facturación ... 60
Gráfico 18 Diagrama de flujo. ... 62
Gráfico 19 Diagrama nivel 0... 63
Gráfico 20 Diagrama nivel 1... 63
Gráfico 21 Diseño base de datos. ... 66
Gráfico 22 Estructura tabla usuario. ... 67
Gráfico 23 Esquema tabla tipo de usuario. ... 67
Gráfico 24 Esquema tabla de productos. ... 68
Gráfico 25 Diseño de interfaz. ... 69
Gráfico 26 Diseño de pantalla de administración. ... 69
Gráfico 27 Diseño de pantalla de ingreso. ... 70
Gráfico 28 Diseño de ingreso de empleados. ... 70
Gráfico 29 Diseño de ingreso de productos. ... 71
Gráfico 30 Pantalla de prueba de velocidad. ... 78
IX
Gráfico 32 Pantalla de prueba en navegadores. ... 79
Gráfico 33 Pantalla de prueba de software. ... 80
Gráfico 34 Pantalla de prueba de cargas. ... 81
X
ÍNDICE DE TABLAS
Tabla 1 Total de población tomada en cuenta ... 35
Tabla 2 Clientes frecuentes registrados. ... 36
Tabla 3 Clientes eventuales registrados... 36
Tabla 4 Medio a través del cual conoció a la empresa ... 38
Tabla 5 . Compras por internet ... 39
Tabla 6. Productos ofertados en internet ... 40
Tabla 7 Acceso a información de productos. ... 41
Tabla 8 . Satisfacción de productos ofertados. ... 42
Tabla 9 Agilidad en la atención. ... 43
Tabla 10 Calidad de la información recibida. ... 44
Tabla 11 Captación de clientes. ... 45
Tabla 12. Cuenta de correo de clientes ... 46
Tabla 13 Recibir información en cuenta de correo. ... 47
Tabla 14 Compras y cotizaciones vía internet. ... 48
Tabla 15. Formato actual de proceso de compras ... 52
Tabla 16. Formato actual de proceso de ventas ... 53
Tabla 17. Formato actual de proceso de facturación ... 53
Tabla 18. Formato propuesto de compras ... 54
Tabla 19. Formato propuesto de ventas ... 57
Tabla 20. Formato propuesto de facturación ... 59
Tabla 21 Recursos de hardware. ... 64
Tabla 22 Recursos de software. ... 64
Tabla 23 Costo de materiales. ... 64
XI
RESUMEN EJECUTIVO
Hoy en día la ciencia y la tecnología calan los niveles más altos en la sociedad actual creciendo cada día más, haciendo que en nuestras vidas las actividades se realicen en menos tiempo, ahorrando recursos, obteniendo información centralizada y accediendo inmediatamente desde cualquier lugar a través del internet.
La Aplicación Web para la gestión de ventas de la empresa Redycom de la ciudad de Ibarra, surgió para mejorar la gestión de ventas, aportando a la empresa eficiencia, comodidad y satisfacción en el proceso antes mencionado, satisfaciendo las necesidades de la empresa, después de una investigación de campo aplicando el método deductivo y analítico.
La aplicación Web es un trabajo único y actualizado, cuyo enfoque dentro de la línea de investigación desarrollo de software y programación de sistemas, lleva a la elaboración de una aplicación web que permite la solución más óptima acorde a los requerimientos de la empresa, beneficiando al personal y clientes de la empresa.
XII
EXECUTIVE SUMMARY
Today science and technology permeate the highest levels in our society growing every day, making the daily activities of our daily living in less time, saving resources, obtaining and accessing centralized information instantly from anywhere through internet
The Web Application for sales managing in Redycom Company from Ibarra city, came up to improve the sales management, contributing to the company efficiency, comfort and satisfaction in the process above satisfying the needs of the company, after a field research by applying deductive and analytical method
The Web application is a unique and updated work, whose focus within the research line development of software and systems programming leads to the development of a web application that allows the optimal solution according to the requirements of the company, benefiting staff and enterprise customers.
1 INTRODUCCIÓN
La formulación de este proyecto surgió de la necesidad de solucionar el problema de no poder contar con una aplicación web que gestione las ventas de la empresa Redycom de la ciudad de Ibarra.
Actualmente la empresa maneja paquetería de office que no cumple con los requerimientos que se pueda aplicar en la web y no tiene procesos de automatización, por lo que se planteó la idea de desarrollar una aplicación web, para obtener reportes detallados, en un tiempo menor y con una mayor precisión, y que permita a los clientes acceder de forma inmediata a consultas de productos desde cualquier lugar a través del internet, eliminando tiempo de espera y evitando la presencia del cliente en el local.
Antecedentes de la investigación
Lucio Vásquez en su tesis con nombre “Aplicación web para mejorar la gestión comercial de los productos y servicios de la ferretería las fuentes de la ciudad de Ibarra” expresa que mediante investigaciones realizadas de igual carácter e índole que involucran el tratamiento informático a los procesos de gestión comercial, se destaca el proyecto de gestión informático financiero para el proceso de comercialización contable de productos y servicios de la empresa Refritec, el trabajo investiga y contempla la automatización de los procesos inmersos en la gestión de productos.
Se toma en cuenta la expresión del autor para realizar una aplicación web para la gestión de ventas de la empresa Redycom, ya que la propuesta de la empresa tiene procesos similares a los planteados por el autor.
Planteamiento del problema
2
Es evidente que, en el entorno laboral actual, las aplicaciones informáticas juegan un papel crucial para el manejo de ventas y toma de decisiones, ya que, una base estructurada, mediante la información que se recopila de las distintas áreas de trabajo de una empresa, permite el adecuado manejo de los procesos administrativos y operativos, en REDYCOM se han suscitado varios inconvenientes de carácter administrativo: la falta de organización laboral, control de inventarios, adquisición de existencias, calidad y marca de productos, precios de compra, precios de venta y otros componentes propios de una gestión empresarial adecuada, ha llevado a determinar que no existe la suficiente información para poder aplicar procesos sistemáticos de control en las actividades de compra y venta de productos informáticos, cabe indicar que actualmente, todo el proceso se realiza de manera manual, ocasionando un proceso lento y desorganizado al momento de llevar un control de la información, con el consecuente desgaste de recursos como tiempo y personal.
La presente propuesta, pretende desarrollar una APLICACIÓN WEB PARA LA GESTION DE VENTAS, que optimice los procesos llevados a cabo en la empresa y sobre todo considerando la premisa de que a mayores ventas, mayor rentabilidad y ganancia, razón de ser de toda empresa.
Formulación del problema
¿Cómo lograr una adecuada gestión de ventas en la empresa REDYCOM?
Delimitación del problema
El problema se encuentra ubicado en la empresa Redycom en la calle Víctor Manuel Guzmán #128 y Juan León Mera de la ciudad de Ibarra, está enfocado en los procesos informáticos debido a la ineficiencia de los procesos de ventas y la falta de reportes con información precisa.
Objeto de investigación y campo de acción Objeto de investigación.- Procesos informáticos Campo de acción.- Aplicación Web
Identificación de la línea de investigación
3
Se proyecta la implementación de una aplicación web, para agilizar los procesos de ventas vía internet, en la empresa Redycom.
Objetivos
Objetivo general
Implantar una aplicación web para la gestión de ventas de la empresa Redycom de la ciudad de Ibarra, que direccione y controle los procesos administrativos, permitiendo proyectar a la empresa dentro y fuera de la ciudad, mediante el uso de recursos tecnológicos a través del internet.
Objetivos específicos
Sustentar teóricamente las herramientas de desarrollo de software para la gestión de los procesos de ventas para las empresas.
Diagnosticar el estado actual de los procesos llevados a cabo en la empresa.
Estructurar una aplicación que permita gestionar los procesos de ventas de la empresa.
Valorar la propuesta.
Hipótesis o idea a defender
Si se desarrolla una APLICACIÓN WEB PARA LA GESTION DE VENTAS EN LA EMPRESA REDYCOM de la ciudad de Ibarra, contribuirá a la eficiencia en el manejo de la información de las ventas.
Justificación del tema
Con la ejecución del presente proyecto se trata de conseguir que el proceso de gestión de ventas sea eficaz y genere el bienestar para todas las personas involucradas, constituyéndose en una alternativa para el desarrollo de la empresa.
4
Queda expresado entonces, que la implementación y aplicación de las tecnologías modernas, en el campo específico del movimiento comercial de productos e implementos de informática, se constituye en la herramienta más adecuada para incrementar los recursos y sobre todo alcanzar un posicionamiento que permita proyectar a la empresa hacia un crecimiento a nivel local y regional.
Metodología investigativa a emplear
El presente estudio se basa en la metodología de investigación cuali-cuantitativa apoyada de los métodos analíticos – sintético, así como también el método Inductivo – deductivo, ya que es necesario desglosar la información para permitir la elaboración del marco teórico y el análisis de resultados del diagnóstico, permitiendo descubrir, analizar y sistematizar los resultados obtenidos.
Resumen de la estructura de la tesis
En el primer capítulo de este informe, se hace referencia al cuerpo capitular en el cual se indican los fundamentos teóricos de los procesos de gestión de ventas, sistemas de Información, aplicación Web, herramienta de desarrollo, seguridad Informática.
El segundo capítulo determina el diseño metodológico, se describe el tipo de investigación utilizada para el desarrollo de la aplicación, se describe los resultados obtenidos de la población y muestra sobre la cual se realizó la investigación, que se encuentra plasmada en los resultados de una encuesta aplicada a los clientes y personal que labora en la empresa.
El tercer capítulo está constituido por la propuesta en base a los resultados obtenidos de la investigación, aplicando la metodología Cascada, identificando los recursos humanos, económicos, hardware y software.
Finalmente se aporta con conclusiones, recomendaciones y bibliografía necesarias para soporte del desarrollo de la aplicación sin excluir los anexos que son de importancia para sustentar la solución al problema.
Elementos de novedad
5
El control de los procesos que maneja la empresa se lleva de manera más adecuada gracias al desarrollo de la aplicación web.
6 CAPITULO I
MARCO TEÓRICO
1.1. Procesos de gestión
Según González Vásquez E, (1995), el proceso de gestión es la forma de gestionar toda la organización, basándose en los procesos, que se definen como una secuencia de actividades orientadas a generar un valor agregado sobre una entrada para conseguir un resultado, y una salida que a su vez satisfaga los requerimientos del cliente.
Es decir que es una estructura operativa sistémica, adecuadamente organizada y que se fundamenta en:
La estructuración de la organización sobre la base de procesos orientados a clientes El cambio de la estructura organizativa de jerárquica a plana
Los departamentos funcionales pierden su razón de ser y existen grupos multidisciplinarios trabajando sobre el proceso
Los directivos dejan de actuar como supervisores y se comportan como apocadores Los empleados se concentran más en las necesidades de sus clientes y menos en los
estándares establecidos por su jefe.
Utilización de tecnología para eliminar actividades que no añadan valor.
Las ventajas son:
Alinea los objetivos de la organización con las expectativas y necesidades de los clientes
Muestra cómo se crea valor en la organización
Señala como están estructurados los flujos de información y materiales
Indica como realmente se realiza el trabajo y cómo se articulan las relaciones proveedor cliente, entre funciones.
7 1.2. Gestión de ventas
(Orta, 2005) En su publicación expresa que es un proceso dinámico, en el cual interactúan diferentes elementos que contribuyen a que la venta se realice, teniendo como propósito la satisfacción de las necesidades del cliente.
Elementos fundamentales de la Gestión de Ventas.
El Enfoque hacia el cliente
El Equipo de Ventas.
El Proceso de Venta.
La Supervisión del Equipo de ventas.
La Comunicación en las Ventas.
1.2.1. El Enfoque hacia el cliente
Según Dafonte, (1986), el enfoque hacia el cliente implica estudiar y analizar las necesidades y expectativas de los clientes, en el momento de diseñar los productos y planificar su distribución, es necesario conocer previamente lo que el cliente espera del mismo y de la propia empresa, asegurándose de que los objetivos de la empresa coinciden con las necesidades y expectativas de los clientes.
Las empresas, para mantener su nivel de actividad, deben mejorar constantemente los productos y servicios ofrecidos, estas mejoras planificadas deben estar en línea con los gustos y deseos de los clientes. Todas las personas de la empresa deben identificar como afecta su trabajo a la percepción que el cliente tiene de la organización y de los productos y servicios ofertados, retroalimentándose con la información del grado de satisfacción percibido por sus clientes, para poder planificar las mejoras; de esta manera la empresa podrá reducir la variabilidad en la relación con el cliente, desde la atención comercial como primer contacto, hasta el servicio post-venta, si fuese necesario.
1.2.2. El Equipo de Ventas
8
Una actividad de venta exitosa solo se puede conseguir con un equipo de ventas que posea las habilidades, los conocimientos y tenga a disposición los procesos de trabajo necesarios para mantener una ventaja competitiva en el mercado
1.2.3. El Proceso de Venta
(Stanton, 2007) Describe que el proceso de venta es una secuencia lógica de cuatro pasos que emprende el vendedor para tratar con un comprador potencial y que tiene por objeto producir alguna reacción deseada en el cliente.
Para tener éxito en su cometido, el vendedor debe realizar cuidadosamente cada uno de los pasos recomendados por el autor, que son:
1.2.3.1. Exploración: Es el primer paso del proceso de venta y consiste en la búsqueda de clientes en perspectiva; es decir, aquellos que aún no son clientes de la empresa pero que tienen grandes posibilidades de serlo.
La exploración involucra tres etapas:
Identificar a los clientes en perspectiva
Calificar a los candidatos en función a su potencial de compra
Elaborar una lista de clientes en perspectiva
1.2.3.2. Acercamiento: Consiste en la obtención de información más detallada de cada cliente en perspectiva y la preparación de la presentación de ventas adaptada a las particularidades de cada cliente.
Esta fase involucra los siguientes procesos:
Investigación de las particularidades de cada cliente en perspectiva
Preparación de la presentación de ventas enfocada en el posible cliente
Obtención de la cita o planificación de las visitas en frío
1.2.4. Presentación del mensaje de ventas
9
Además dice que la presentación del mensaje de ventas debe ser adaptada a las necesidades y deseos de los clientes en perspectiva, además se basa en una estructura de 3 pilares:
Las características del producto: Lo que es el producto en si
Las ventajas: Aquello que lo hace superior a los productos de la competencia
Los beneficios que obtiene el cliente: Aquello que busca el cliente de forma consciente o inconsciente.
Por otra parte, las objeciones ya no representan un obstáculo a superar por el vendedor, por el contrario son claros indicios de compra (si el cliente objeta algo es porque tiene interés pero antes necesita solucionar sus dudas).
Finalmente, el cierre de venta ya no es una tarea que se deja al final de la presentación, es decir que el famoso cerrar con broche de oro pasó a la historia. Hoy en día, el cierre debe efectuarse ni bien exista un indicio de compra por parte del cliente, y eso puede suceder inclusive al principio de la presentación.
1.2.5. Servicios posventa
Para Stanton, (2007), el servicio posventa es la etapa final del proceso de venta con una serie de actividades que fomenten la buena voluntad del cliente y formen los cimientos para futuros negocios.
Además dice que el objetivo es asegurar la satisfacción e incluso la complacencia del cliente. Es en esta etapa donde la empresa puede dar un valor agregado que no espera el cliente pero que puede ocasionar su lealtad hacia la marca o la empresa.
Los servicios de posventa, pueden incluir todas o algunas de las siguientes actividades:
Verificación de que se cumplan los tiempos y condiciones de envío
Verificación de una entrega correcta
Instalación
Asesoramiento para un uso apropiado
Garantías en caso de fallas de fábrica
10
Posibilidad de cambio o devolución en caso de no satisfacer las expectativas del cliente
Descuentos especiales para compras futuras.
Concluye que esta fase viene a ser una especie de aseguramiento de que la operación se realice sin ningún contratiempo y que sus resultados sean óptimos, cubriendo todos los aspectos de garantías, soporte técnico, entrega correcta y sobre todo, realizar cambios, cuando son necesarios.
1.2.6. La Supervisión del Equipo de ventas
Una gestión profesional de supervisión debe contemplar los siguientes aspectos de su Equipo de vendedores según (Kotler, 1992).
Dimensionamiento del equipo
Territorio a trabajar
Necesidades de ingresos por vendedor
Nivel de conocimiento de los productos
Entrenamiento en Técnicas de Ventas
Estructura de las reuniones de trabajo
Herramientas de seguimiento al cumplimiento presupuestal
Charlas de motivación
Indicadores de gestión y cumplimiento
Herramientas de gestión diaria
Plan trabajo con Vendedores Nuevos
Plan de trabajo en el Campo
1.2.7. La Comunicación en las Ventas
Para Kotler, (1992), la venta como una forma de comunicación humana, tiene características singulares. Vender es actuar sobre las personas de forma contundente y es tarea de relaciones humanas y de liderazgo. En su dimensión humana, supone, por un lado, un buen conocimiento de la gente, y por otro, un buen manejo de la palabra.
11 1.3. Sistemas de información
Para Laudon, (2006), un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa. Para que el sistema de información pueda operar, es necesario el hardware y el recurso humano que interactúa con el sistema de información, (las personas que utilizan el sistema).
Así como en informática, un sistema de información es cualquier sistema computacional que se utilice para obtener, almacenar, manipular, administrar, controlar, procesar, transmitir o recibir datos, para satisfacer una necesidad de información. En Internet es importante definir qué, las fuentes de información, se considerarán localizadas cuando se conozca el URL que está organizado en cuatro grupos de números, que se identifican de una forma única dentro de la red.
Existe un mecanismo, denominado IP, que oculta las auténticas direcciones; por ejemplo: “195.66.188.2”, cifras que resultan difíciles de memorizar y son sustituidas por un “alias” (apodo) como “redycom.ec”. El refinamiento máximo vino con el protocolo de transferencia de hipertexto HTTP, que permitió incluir dentro de un documento, enlaces que apuntaban a otros documentos relacionados, pudiendo encontrarse éstos en la misma fuente de datos o en una remota, facilitándose la navegación intuitiva.
Según la publicación del autor. Un sistema de información realiza cuatro actividades básicas que se describen a continuación:
Entrada
Almacenamiento
Procesamiento
Salida de información.
1.3.1. Entrada de Información
12
automáticas son datos o información que provienen o son tomados de otros sistemas o módulos.
Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas magnéticas, las unidades de diskette, los códigos de barras, los escáner, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras.
1.3.2. Almacenamiento de información
Este concepto es elemental y se lo puede definir personalmente como la actividad mediante la cual el sistema puede recordar la información guardada en el proceso anterior, esta información suele ser almacenada en estructuras de información denominadas archivos. La unidad típica de almacenamiento son los discos magnéticos o discos duros, los discos flexibles o diskettes y los discos compactos (CD-ROM).
1.3.3. Procesamiento de Información
Es la capacidad del Sistema de Información para efectuar cálculos con datos introducidos recientemente en el sistema o bien con datos que están almacenados con una secuencia de operaciones preestablecida; permite la transformación de datos en información que puede ser utilizada para la toma de decisiones.
1.3.4. Salida de Información
13 Los sistemas de información cumplen tres objetivos:
Automatización de procesos operativos.
Proporcionar información
Lograr ventajas competitivas a través de su implantación y uso.
1.3.5. Ciclo de vida de los Sistemas de Información.
Según las publicaciones de McGraw-Hill, (2002), los ciclos de vida de los sistemas de información, se rigen bajo varios componentes o aspectos, que cabe tomarse en cuenta:
Conocimiento de la Organización: Analizar y conocer todos los sistemas que forman parte de la organización
Identificación de problemas y oportunidades: Relevar las situaciones que tiene la organización y de las cuales se puede sacar una ventaja competitiva
Determinar las necesidades: Se procede identificar a través de algún método de recolección de información
Diagnóstico: Se elabora un informe resaltando los aspectos positivos y negativos de la organización. Este informe formará parte de la propuesta del SI y también será tomado en cuenta a la hora del diseño.
Propuesta: Se elabora una propuesta formal dirigida hacia la organización donde se detalle el presupuesto, relación costo-beneficio
PROCESO
REPORTES
ENTRADA DE DATOS
INTERFAZ DE ENTRADA
ALMACENAMIENTO
INTERFAZ DE SALIDA
Gráfico 1 Diagrama del proceso de información.
14
Diseño del sistema: Se elabora el diseño lógico del sistema de información; la misma incluye el diseño del flujo de la información dentro del sistema, los procesos que se realizarán dentro del sistema, etc. En este paso es importante seleccionar la plataforma donde se apoyará el SI y el lenguaje de programación a utilizar.
Codificación: Con el algoritmo ya diseñado, se procede a su reescritura en un lenguaje de programación establecido
Implementación: Este paso consta de todas las actividades requeridas para la instalación de los equipos informáticos, redes y la instalación del programa generado en la codificación.
Mantenimiento: Proceso de retroalimentación, a través del cual se puede solicitar la corrección, el mejoramiento o la adaptación del SI ya creado a otro entorno. Este paso incluye el soporte técnico acordado en la implementación.
1.4. Aplicaciones Web
Para Mora, (2002). Las aplicaciones web son herramientas que los usuarios pueden utilizar accediendo a un servidor web, a través de Internet o de una intranet mediante un navegador, además expresa que las aplicaciones web son populares debido a lo práctico del navegador web, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los web mails, wikis, weblogs, tiendas en línea, etc.
También señala que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios y acceder a gestores de base de datos de todo tipo.
15
1.4.1. Características de las Aplicaciones Web:
El cliente puede acceder fácilmente a estas aplicaciones empleando un navegador Web a través de los enlaces.
Si es por Internet, el cliente puede entrar desde cualquier lugar del mundo donde tenga un acceso a Internet.
Pueden existir miles de clientes, pero una única aplicación instalada en un servidor, por lo tanto, se puede actualizar y mantener una sola aplicación y todos sus clientes verán los resultados inmediatamente.
1.4.2. Diseño Web
En las publicaciones de Thomas A. Powell, (2010), señala que el diseño web es una actividad que consiste en la planificación, diseño e Implementación de sitios web. No es simplemente una aplicación del diseño convencional, ya que requiere tener en cuenta la navegabilidad, interactividad, usabilidad, arquitectura de la información y la interacción de medios como el audio, texto, imagen, enlaces y vídeo.
Además señala que la unión de un buen diseño con una jerarquía bien elaborada de contenidos aumenta la eficiencia de la web como canal de comunicación e intercambio de datos que brinda posibilidades como el contacto directo entre el productor y el consumidor, la inclusión de imágenes fue la más significativa en el diseño web, pero también debemos
Internet Aplicación Web
Aplicación Web
Aplicación Web
Servidores
Gráfico 2 Esquema de aplicación web.
16
mencionar el vídeo y la animación, o los espacios 3D, lo que aporta valores estilísticos, de diseño y de interactividad jamás imaginados antes. A partir de estos datos se puede entender la necesidad de concentrar los esfuerzos para atraer y mantener la atención de los usuarios. Junto con un desarrollo efectivo de la estructura web y del contenido, el diseño y el uso del color son la llave para atraer y ser identificado, formando vínculos en el subconsciente del usuario y generar esquemas para captar a nuevos visitantes.
1.4.3. Herramientas de desarrollo
La aplicación web para la gestión de ventas, es un software que permitirá llevar un control de ventas de la empresa Redycom.
Para alcanzar los objetivos de este proyecto se utilizará las herramientas que se describen a continuación:
1.4.3.1. Servidor Apache
En el siguiente link (Apache) se indica que el grupo Apache empieza el proyecto a partir de febrero de 1995, el cual está basado en el servidor de código abierto Apache http de la aplicación original de NCSA para plataformas Unix, Linux, posteriormente fruto de su evolución para Microsoft Windows, Macintosh y otras tecnologías Open Source. El desarrollo de esta aplicación original se estancó por algún tiempo tras la marcha de Rob McCool por lo que varios web máster siguieron creando sus parches para sus servidores web hasta que se contactaron vía email para seguir en conjunto el mantenimiento del servidor web, fue ahí cuando formaron el grupo Apache.
Brian Behlendorf y Cliff Skolnick fueron quienes, a través de una lista de correo, coordinaron el trabajo y lograron establecer un espacio compartido de libre acceso para los desarrolladores. Su nombre se debe a que Behlendorf quería 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 EEUU
17
autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.
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 accionar remotamente en ciertas situaciones o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache
Es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web (www), muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache o que utilizarán características propias de este servidor web, además es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP, Perl, Python y Ruby.
Para (Hobss, 2009) Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux.
Además es usado para otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos.
18 1.4.3.2. Lenguaje de programación Php
En las publicaciones de Lerdorf, (2000), expresa que PHP es un lenguaje de código abierto centrado en programación de scripts del lado del servidor, muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML, se puede utilizar en cualquiera de los principales sistema as operativos incluyendo Linux, muchas variantes Unix (incluyendo HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac OS X, RISC OS, además soporta la mayoría de servidores web de hoy en día, incluyendo Apache, IIS, entre otros y su soporte para una gran cantidad de bases de datos. De modo que tiene la libertad de elegir el sistema operativo y el servidor web de su gusto y tiene la posibilidad de utilizar programación por procedimientos, programación orientada a objetos (POO), o una mezcla de ambas.
Así mismo PHP permite la creación de imágenes, archivos PDF e incluso películas Flash usando libswf y Ming, también puede presentar otros resultados como XHTML y cualquier otro tipo de ficheros XML, puede autogenerar estos archivos y almacenarlos en el sistema de archivos en vez de presentarlos en la pantalla, creando un caché en el lado-servidor para contenido dinámico.
Según el autor el código de PHP está encerrado entre las etiquetas especiales de comienzo y final <?php y ?> que permiten entrar y salir del modo PHP, cualquier cosa que esté fuera de las etiquetas de apertura y cierre es ignorado por PHP, el cual permite que los ficheros de PHP tengan contenido mixto, permitiendo que PHP sea impregnado en documentos HTML.
También indica que PHP, a diferencia de otros lenguajes, es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente, el cliente recibirá el resultado de ejecutar el script aunque no se sabría el código interior que era. El servidor web puede ser configurado para que procese todos los ficheros HTML con PHP, por lo que no hay manera de que los usuarios puedan saber qué se tiene debajo de la programación.
Ofrece muchas características avanzadas para los programadores profesionales pero también es extremadamente simple para los principiantes
19
Scripts del lado del servidor. Se necesitan tres cosas para que esto funcione, el intérprete PHP, un servidor web y un navegador. Es necesario hacer funcionar el servidor con PHP instalado.
Scripts en la línea de comandos. Puede crear un script PHP y correrlo sin necesidad de un servidor web o navegador, solamente necesita el intérprete PHP. Este tipo de uso es ideal para scripts ejecutados regularmente desde cron en nix o Linux o el planificador de tareas en Windows.
Escribir aplicaciones de interfaz gráfica. Tal vez PHP no sea el lenguaje más apropiado para escribir aplicaciones gráficas, pero se puede utilizar PHP-GTK para escribir dichos programas. También es posible escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensión de PHP, no disponible en la distribución principal.
1.4.3.3. Base de datos Mysql
Para David Axmark, Allan Larson, Michael Widenius, (2011), Mysql es un servidor de base de datos relacional SQL (Structured Query Language) muy rápido, multihilo, multiusuario y robusto, con más de seis millones de instalaciones, está diseñado para entornos de producción críticos, con alta carga de trabajo así como para integrarse en software para ser distribuido.
De acuerdo a los autores citados, administra la relación de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo permitiendo velocidad y flexibilidad ya que las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. (Mysql)
20
El software MySQL tiene una doble licencia. Los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los términos de la licencia GNU General Public License o pueden adquirir una licencia comercial estándar de MySQL AB.
MySQL funciona sobre múltiples plataformas como AIX, BSD, FreeBSD, HP-UX, Kurisu OS, GNU/Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, eBD, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8 y Windows Server (2000, 2003, 2008 y 2012), OpenVMS.
Entonces, como se puede apreciar, este sistema es muy amplio y las opciones de utilización, en cuanto a plataformas disponibles, son multifacéticas.
Características
Según los mismos autores, MySQL, tiene las siguientes características:
Usa GNU Automake, Autoconf, y Libtool para portabilidad Uso de multihilos mediante hilos del kernel.
Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice Tablas hash en memoria temporales
El código MySQL se prueba con un detector de memoria perdida comercial Purify así como con Valgrind, una herramienta GPL.
Soporte para operadores y funciones en cláusulas select y where.
Soporte para cláusulas group by y order by, soporte de funciones de agrupación Ofrece un sistema de contraseñas y privilegios seguro mediante verificación basada
en el host y el tráfico de contraseñas está cifrado al conectarse a un servidor. Soporta gran cantidad de datos de hasta 50 millones de registros.
Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).
21
En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria compartida.
MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el código fuente de la distribución de MySQL.
Disponibilidad en gran cantidad de plataformas y sistemas.
Posibilidad de selección de mecanismos de almacenamiento que ofrecen diferente velocidad de operación, soporte físico, capacidad, distribución geográfica, transacciones.
Transacciones y claves foráneas. Conectividad segura.
Replicación.
Búsqueda e indexación de campos de texto.
1.4.3.4. Java
En publicaciones de (Gosling, 2005) dice que Java es una tecnología que se usa para el desarrollo de aplicaciones que convierten a la web en un elemento más interesante y útil, le permite jugar, cargar fotografías, chatear en línea, realizar visitas virtuales y utilizar servicios.
Fue originalmente desarrollado por James Gosling de Sun Microsystems la cual fue adquirida por la compañía Oracle y publicado en el 1995 como un componente fundamental de la plataforma Java de Sun Microsystems.
La intención de Java es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo, lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
Características
Según el autor citado, las características de Java, son:
22
El código fuente se guarda en archivos con el mismo nombre que la clase que contienen y con extensión “.java”, una clase (class) declarada pública (public) debe seguir este convenio.
El compilador genera un archivo de clase con extensión “.class” por cada una de las clases definidas en el archivo fuente. Una clase anónima se trata como si su nombre fuera la concatenación del nombre de la clase que la encierra, el símbolo “$”, y un número entero.
Los programas que se ejecutan de forma independiente y autónoma, deben contener el método” main ()”.
La palabra reservada ”void” indica que el método main no devuelve nada.
El método main debe aceptar un array de objetos tipo String. Por acuerdo se referencia como ”args”, aunque puede emplearse cualquier otro identificador. La palabra reservada ”static” indica que el método es un método de clase, asociado
a la clase en vez de una instancias de la misma. El método main debe ser estático o ‟‟de clase‟‟.
La palabra reservada public significa que un método puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase. Otros tipos de acceso son ”private” o ”protected”.
La utilidad de impresión (en pantalla por ejemplo) forma parte de la biblioteca estándar de Java: la clase „‟‟System‟‟‟ define un campo público estático llamado „‟‟out‟‟‟. El objeto out es una instancia de „‟‟PrintStream‟‟‟, que ofrece el método „‟‟println (String)‟‟‟ para volcar datos en la pantalla (la salida estándar).
Las aplicaciones autónomas se ejecutan dando al entorno de ejecución de Java el nombre de la clase cuyo método main debe invocarse.
1.4.3.5. Javascript
23
Se utiliza principalmente en su forma del lado del cliente implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, en bases de datos locales al navegador aunque existe una forma de JavaScript del lado del servidor, su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio. (Java)
Según el autor citado expresa que se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java, sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes. Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM).
Tradicionalmente se venía utilizando en páginas web HTML para realizar operaciones y únicamente en el marco de la aplicación cliente, sin acceso a funciones del servidor. JavaScript se interpreta en el agente de usuario, al mismo tiempo que las sentencias van descargándose junto con el código HTML.
“En 1997 los autores propusieron JavaScript para que fuera adoptado como estándar de la European Computer Manufacturers Association ECMA, que a pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA, con el nombre de ECMAScript. Poco después también como un estándar ISO.
1.4.3.6 Flash
24
Production Studio Premium y Adobe Creative Suite Master Collection. Se usa sobre animaciones publicitarias, reproducción de vídeos (como YouTube) y otros medios interactivos que se presentan en la mayoría de sitios web del mundo, lo que le ha dado fama a éste programa, dándoles el nombre de "animaciones Flash" a los contenidos creados con éste.
Adobe Flash utiliza gráficos vectoriales y gráficos rasterizados, sonido, código de programa, flujo de vídeo y audio bidireccional, los archivos de Adobe Flash tienen generalmente la extensión de archivo SWF, estos archivos pueden aparecer en una página web para ser vistos en un navegador web, o pueden ser reproducidos independientemente por un reproductor Flash. Los archivos de Flash aparecen muy a menudo como animaciones en sitios web multimedia, y más recientemente en Aplicaciones de Internet Ricas. Son también ampliamente utilizados como anuncios en la Web. (Flash)
En versiones anteriores, Macromedia amplió a Flash más allá de las animaciones simples, convirtiéndolo en una herramienta de desarrollo completa, para crear principalmente elementos multimedia e interactivos para Internet.
Según el autor originalmente Flash no fue un desarrollo propio de Adobe, sino de una pequeña empresa de desarrollo de nombre FutureWave Software y su nombre original fue FutureSplash Animator. En diciembre de 1996 Macromedia adquiere FutureWave Software, y con ello su programa de animación vectorial que pasa a ser conocido como Flash 1.0. En 2005 Adobe compra Macromedia y junto con ella sus productos, entre ellos Flash, que pasa a llamarse Adobe Flash.
1.5. Seguridades
La seguridad, en informática se basa en la protección de activos según explica (McGraw-Hill, 2002). Estos activos pueden ser elementos tan tangibles como un servidor o una base de datos, o pueden ser la reputación de una empresa. Generalmente podemos evaluar la seguridad de un activo en base a tres aspectos principales que no necesitan explicación: integridad, disponibilidad, confidencialidad.
25
1.5.1. Autenticación: los clientes deben ser identificados de forma única
1.5.2. Autorización: no solo es necesario saber quiénes acceden a nuestros activos, también es necesario establecer que es lo que pueden hacer con ellos, un nivel de autorización dado determina qué tipo de operaciones o transacciones puede efectuar un cliente
1.5.3. Registro y Auditoria: Es importante que esta sea registrada adecuadamente una operación efectuada, en particular si queremos evitar el rechazo de transacciones efectuada por un cliente.
Cuando se habla de la seguridad de aplicaciones web se deben considerar no sólo las amenazas externas a la compañía sino también las internas (administradores malintencionados, usuarios que provocan accidentes, etc.), Se sabe que las aplicaciones más robustas y resistentes a ataques son aquellas en las cuales las cuestiones de seguridad fueron consideradas desde las primeras etapas del desarrollo.
1.5.4. Tipo de amenazas
Para McGraw-hill, (2002), una fase importante en el proceso de programación de aplicaciones más seguras consiste en ser capaz de anticipar las amenazas que se puede sufrir. Microsoft ha elaborado un sistema de clasificación de las amenazas en distintas categorías: suplantación, manipulación, repudio, revelación de información, denegación de servicio y concesión de privilegio.
1.5.4.1. Suplantación: Autorización insuficiente. La suplantación consiste en introducir las credenciales de un usuario diferente, un usuario malintencionado podría también cambiar el contenido de una cookie para fingir que es otra persona o que la cookie proviene de un servidor diferente.
26
nunca una contraseña ni otro tipo de datos confidenciales o privados en una cookie, donde un usuario malintencionado podría encontrarlos y modificarlos fácilmente.
1.5.4.2. Manipulación: Ataques lógicos. Manipular significa cambiar o eliminar un recurso sin autorización. Una defensa fundamental contra la manipulación consiste en usar la seguridad de Windows para bloquear los archivos, directorios y otros recursos de Windows. La aplicación también debería ejecutarse con privilegios mínimos. Para reforzar la protección contra los ataques al sistema que aprovechan las secuencias de comandos, desconfíe ante cualquier información que proceda de un usuario o incluso de una base de datos. Siempre que se obtenga información de una fuente que no sea de confianza, es preciso asegurarse de que no contiene código ejecutable.
1.5.4.3. Repudio: Ataques al cliente. Una amenaza de repudio implica llevar a cabo una transacción de manera que no haya pruebas fehacientes de los actores principales de la transacción. En una aplicación Web, esto puede significar que se está suplantando a un usuario usando sus credenciales. Se puede evitar esto aplicando una autenticación estricta. Además, se deben usar las funciones de inicio de sesión de Windows para mantener un registro de auditoría de cualquier actividad en el servidor.
1.5.4.4. Revelación de información: Robo de información. Consiste en robar información como contraseñas de usuarios. La mejor protección contra la revelación de información es no tener información que revelar. Por ejemplo, si se evita el almacenamiento de contraseñas, ningún usuario malintencionado podrá robarlas. Una alternativa al almacenamiento de las contraseñas consiste en guardar sólo un valor hash de éstas. De este modo, cuando un usuario presenta sus credenciales, se puede extraer el valor hash de su contraseña y compararlo con el almacenado. Si, aun así, se almacena información confidencial, se debe utilizar la seguridad de Windows para ayudar a protegerla. Si tiene que exponer información confidencial, es recomendable que la cifre cuando la almacene.
27
determinado de solicitudes, lo que podría resultar útil para denegar el acceso a los usuarios o direcciones IP que se sabe que tienen malas intenciones.
Es necesario ejecutar código sólido para mantener las aplicaciones en línea. Se debe probar exhaustivamente su aplicación y responder apropiadamente a los errores siempre que sea posible.
1.5.4.6. Concesión de privilegio: Consiste en usar medios malintencionados para obtener más permisos de los asignados normalmente. Por ejemplo, un usuario malintencionado consigue obtener privilegios administrativos para el servidor Web, lo que le proporciona acceso a todos los datos del servidor, así como el control de las funciones de éste.
El autor citado recomienda ejecutar la aplicación en un contexto con los permisos mínimos, si resulta factible para protegerse contra ataques de concesión de privilegio, por ejemplo, se recomienda no ejecutar las aplicaciones de ASP.NET con la cuenta de usuario SYSTEM (administrador).
1.5.4.7. Ejecutar aplicaciones con privilegios mínimos
Cuando la aplicación se ejecuta, lo hace en un contexto que tiene privilegios específicos en el equipo local y posiblemente en equipos remotos.
No ejecute la aplicación con la identidad de un usuario de sistema (administrador).
Ejecute la aplicación en el contexto de un usuario con los mínimos privilegios.
Establezca permisos en todos los recursos requeridos por la aplicación y utilice la configuración menos permisiva posible.
Mantenga los archivos de la aplicación web en una carpeta ubicada debajo de la raíz de la aplicación. No dé a los usuarios la opción de especificar una ruta que permita tener acceso a ningún archivo de la aplicación. Esto ayudará a evitar que los usuarios obtengan acceso a la raíz del servidor.
1.5.5. Seguridad en la base de datos
28
Variables de alcance: La más poderosa protección contra el SQL es utilizar solamente variables de alcance para imposibilitar la concatenación de instrucciones SQL donde puedan aplicarse variables en las instrucciones vinculadas.
Validación de la entrada: es necesaria una validación fuerte en lado de servidor para entrada de usuario, validación de datos filtrar la entrada del usuario de caracteres SQL, verificar tanto el tamaño como el tipo de los datos y sintaxis de las entradas de usuario.
Mensajes de error: Los mensajes de error a menudo revelan demasiada información que puede ser útil al atacante (nombres de tablas, campos, vistas); por lo tanto no se deberá exponer al usuario final los mensajes de error devueltos por el gestor de la base de datos, los mensajes de errores de la base de datos deberían ser notificados solamente a los administradores de la aplicación.
1.5.5.1. Manipulación de parámetros: Es un conjunto de técnicas que atacan la lógica de la aplicación, tomando ventaja del uso de campos ocultos o fijos para la transferencia de información entre browser y servidor. En particular, etiquetas ocultas en un formulario, cookies o parámetros vinculados a la URL son fácilmente modificables por un atacante.
1.5.5.2. Manipulación de campos ocultos: Cualquiera de los valores que se almacenan en los campos de un formulario puede ser manipulado por un atacante. En particular los campos ocultos son usualmente atractivos para su manipulación ya que muchos desarrolladores los utilizan para información confidencial de estatus de algún objeto sobre el que se está trabajando.
1.6. Certificaciones
Es un documento firmado electrónicamente por un prestador de servicios de certificación que permite al firmante identificarse en Internet y vincula unos datos de verificación de firma a un firmante y confirma su identidad.
Sirve para:
29
Firmar electrónicamente de forma que se garantice la integridad de los datos trasmitidos y su procedencia. Un documento firmado no puede ser manipulado, ya que la firma está asociada matemáticamente tanto al documento como al firmante Cifrar datos para que sólo el destinatario del documento pueda acceder a su
contenido
1.6.1. Autoridad de certificación
Es una entidad de confianza, responsable de emitir y revocar los certificados digitales utilizados en la firma electrónica, para lo cual se emplea la criptografía de clave pública, en la actualidad, las Autoridades de Certificación acreditadas se someten a leyes y reglamentos que plantean retos operativos, además de normas y estándares que les hacen asumir importantes responsabilidades.
ANF AC fue la primera CA de España en quedar acreditada oficialmente en el año 2000, al estar en posesión de la tecnología necesaria para emitir certificados electrónicos reconocidos, firma electrónica avanzada, sellos digitales de tiempo y verificación en línea del estado de los certificados, actualmente los certificados electrónicos emitidos por entidades públicas son el DNIe o DNI electrónico y el de la Fábrica Nacional de Moneda y Timbre (FNMT). La potestad para Emitir Certificados Digitales le es concedida por el Órgano Licenciante y la calidad del servicio es controlada por una entidad Auditante. En nuestro país este esquema ya está siendo usado en el Ámbito Público del Estado, sin embargo las leyes que regulan la actividad privada están en vías de promulgación, es por ello que en el ámbito privado se aplica actualmente la legislación que rige el acuerdo de partes.
El organismo encargado de las Autoridades de Certificación en Ecuador es el Consejo Nacional de Telecomunicaciones (CONATEL) de Ecuador.
En Ecuador existen las siguientes Entidades Certificadoras acreditas ante el CONATEL:
Banco Central del Ecuador (Entidad Certificadora pública).
Security Data.
30 1.6.2. Solicitud de un certificado
Para realizar la solicitud de un certificado de servidor web a la autoridad de certificación, el solicitante, utilizando ciertas funciones del software de servidor web, completa ciertos datos identificativos incluyendo el localizador URL del servidor y genera una pareja de claves pública/privada. Con esa información el software de servidor compone un fichero que contiene una petición CSR (Certificate Signing Request) en formato PKCS#10 que contiene la clave pública y que se hace llegar a la autoridad de certificación elegida. Esta, tras verificar por sí o mediante los servicios de una RA (Registration Authority, Autoridad de Registro) la información de identificación aportada y la realización del pago, envía el certificado firmado al solicitante, que lo instala en el servidor web con la misma herramienta con la que generó la petición CSR.
1.7. Conceptos Básicos
Los conceptos que se presentan a continuación son los términos más relevantes dentro de la investigación:
1.7.1. Internet: Conjunto de redes de computadoras y equipos físicos interconectados entre sí, que permiten el intercambio de información de cualquier tipo en muy poco tiempo, estando a miles de kilómetros de distancia.
1.7.2. Web Hosting: Servicio que provee de un espacio a los usuarios de Internet para alojar un sitio web en un servidor. Esto es un espacio en un servidor conectado a internet las 24horas del día para que esa web esté activa en la red y pueda ser accedida por cualquier usuario en cualquier momento.
1.7.3. Red: Para (Toby, 2005). Red es un conjunto de equipos (computadoras y/o dispositivos) conectados, que comparten información (archivos), recursos (CD-ROM, impresoras, etc.) y servicios (acceso a internet, e-mail, juegos), etc.; elementos que se conectan mediante un vínculo dedicado o conmutado para proporcionar una comunicación local o remota.
1.7.4. LAN: Según (Toby, 2005) indica que Local Área Network (LAN) unen a los ordenadores cercanos, en la misma habitación o edificio. Se caracteriza por su gran rapidez en la transferencia de datos y son relativamente sencillas de instalar.
31
lentas que las que las redes de área local otra de sus características es que solo pueden ser instaladas por organizaciones en donde su rubro principal son las Telecomunicaciones, cubriendo un área geográfica grande.
1.7.6. MAN: Metropolitan Área Network: Redes de Área Metropolitana. Este tipo de categoría de red es una versión de mayor tamaño que la de red local. Puede ser pública o privada.
1.7.7. World wide web: Es un medio de comunicación de texto, gráficos y otros objetos multimedia a través de internet, es decir, la web es un sistema de hipertexto que utiliza internet como su mecanismo de transporte o desde otro punto de vista, una forma gráfica de explorar internet.
1.7.8. Protocolo FTP: File Transfer Protocol: Es uno de los protocolos más antiguos y difundidos que se encuentran en la Internet hoy en día. Su fin principal es el de transferir archivos entre los equipos dentro del Internet, sin que el usuario tenga que iniciar una sesión en el Host remoto o que requiera tener conocimientos sobre cómo utilizar el sistema remoto.
1.7.9. Protocolo HTTP: Hypertext Transfer Protocol: Protocolo de transferencia de hipertexto, es el protocolo usado en cada transacción de la Web (WWW)
1.7.10. URL: Universal Resource Locutor / Localizador Universal de Recursos: Es el modo estándar de proporcionar la dirección de cualquier recurso en Internet. La inmensa variedad de páginas web que se encuentran en el Internet se distinguen mediante lo que se llama la dirección URL.
1.8. Conclusiones parciales
La información recopilada en el marco teórico sirve para realizar una interpretación de los datos, así como también para contextualizar al lector y al investigador en el tema de estudio.
El análisis de información permite la sustentación de los temas relacionados con la investigación
32
Existe una teoría desarrollada sobre el control de información, aplicables a la investigación planteada.
El capítulo constituye un respaldo más en la cadena de tareas encaminadas en la obtención del informe final de la investigación.
33 CAPITULO II
MARCO METODOLÓGICO Y PLANTEAMIENTO DE LA PROPUESTA
Se ha realizado un estudio previo del problema que se presentaba en la empresa para llegar a dar una solución, conociendo los beneficios, contras y el costo que involucraría el desarrollo e implementación del proyecto, pudiendo así llegar al objetivo planteado a través de la aplicación
2.1. Caracterización y contextualización de la investigación
El sector en el cual se usan las aplicaciones web abarca la prestación de servicios de ventas de productos a través de internet, lo que permite a la empresa tener presencia a nivel local y regional. Esto es posible ya que la tecnología permite crear aplicaciones informáticas a través de la red pública, de tal forma que los usuarios disponen de una herramienta tecnológica para acceder a la información de productos ofertados eliminando la barrera tiempo espacio.
Al tratarse de una empresa que vende suministros informáticos, se realiza un análisis sobre los procesos de control de ventas, determinando la problemática en cómo mejorar los procesos a través de una aplicación web.
2.2. Descripción metodológica
El presente estudio se basa en la modalidad de investigación cuali-cuantitativa. Es decir, integra la estadística descriptiva y el proceso de análisis cualitativo, desarrollado principalmente en el tratamiento de los resultados obtenidos.
Para su formulación se apoya en los siguientes tipos de investigación que servirán de base para el desarrollo de la misma: