2.1 ESTRUCTURA DE UN PROGRAMA WEB
Un documento escrito en HTML contendría básicamente las siguientes etiquetas:
<HTML> Indica el inicio del documento.
<HEAD> Inicio de la cabecera.
<TITLE> Inicio del título del documento.
</TITLE> Final del título del documento.
</HEAD> Final de la cabecera del documento.
<BODY> Inicio del cuerpo del documento.
</BODY> Final del cuerpo del documento.
</HTML> Final del documento.
2.2. LENGUAJES DE SCRIPTS
(Scripting language, lenguaje de guión). Un lenguaje scripting es un tipo de lenguaje de programaciónque es generalmente interpretado.
Se los programas compilados, porque los programas son convertidos de forma permanente a un código especial antes de que puedan ejecutarse (proceso de compilación). En cambio los scripts permanecen en su forma original (su código fuente en forma de texto) y son interpretados comando por comando cada vez que se ejecutan. De todas maneras, los scripts pueden ser compilados también, aunque no es usual.
Características de los lenguajes scripting
- Los scripts suelen escribirse más fácilmente, pero con un costo sobre su ejecución.
- Suelen implementarse con intérpretes en lugar de compiladores.
- Tienen fuerte comunicación con componentes escritos en otros lenguajes.
- Los scripts suelen ser almacenados como texto sin formato.
- Los códigos suelen ser más pequeños que el equivalente en un lenguaje de programación compilado.
Tipos de lenguajes de scripting:
- Lenguaje de control de tareas y shells: cmd.exe (Windows NT, Windows CE, OS/2),COMMAND.COM (DOS, Windows 9x), csh, AppleScript, sh, JScript vía Windows Script Host,VBScript vía Windows Script Host, REXX, etc.
- GUI Scripting: son lenguajes de scripting diseñados para interactuar con los elementos de las interfaces gráficas como botones, ventanas, menús, etc. Se utilizan para automatizar acciones repetitivas. También son llamados "lenguajes macro".
Ejemplos: AutoHotkey, AutoIt, Expect, Automator, etc.
- Lenguaje scripting de aplicaciones específicas: en grandes aplicaciones a veces es necesario incluir un lenguaje de scripting que se adapte a ésta y dé más posibilidades a sus usuarios.
Ejemplos: ActionScript en Flash, MATLAB, mIRC script, QuakeC, etc.
- De programación web: los lenguajes scripting para webs suelen servir para crear páginas dinámicas. De todas maneras, muchos de ellos son tan potentes como para poder crear programas de propósito general. Pueden diferenciarse en dos categorías:
- Del lado del servidor: PHP, ASP (Active Server Pages), JavaServer Pages, ColdFusion, IPTSCRAE, Lasso, MIVA Script, SMX, XSLT.
Del lado del cliente: JavaScript, JScript, VBScript, Tcl.
- Lenguajes de procesamiento de textos: muchos lenguajes de scripting comenzaron de esta manera. Permitían automatizar tareas al administrador cuando se trataba de configuraciones basadas en textos (usual en Unix por ejemplo). En el caso de Perl, comenzó como un lenguaje de generación de reportes, pero terminó siendo un completo lenguaje para desarrollar aplicaciones.
- Lenguajes dinámicos de propósito general: Algunos lenguajes, como Perl, comenzaron como lenguajes de scripting para se desarrollaron como completos lenguajes de programación de propósito general. Otros lenguajes similares han sido descritos como "lenguajes scripting" por situaciones similares, aunque luego se hayan usado más para programar aplicaciones.
Ejemplos: APL, Boo, Dylan, Ferite, Groovy, Io, Lisp, Lua, MUMPS (M), newLISP, Nuva, Perl, PHP,Python, Ruby, Scheme, Smalltalk, SuperCard, Tcl, Revolution.
2.2.1 ESTRUCTURAS DE CONTROL
En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa.
Con las estructuras de control se puede:
- De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-Then-Else y Select-Case)
- Ejecutar un grupo de sentencias mientras exista una condición (Do-While)
- Ejecutar un grupo de sentencias hasta que exista una condición (Do-Until)
- Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
- Etc
Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las estructuras de control se puede clasificar en : secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite que la programación se rija por los principios de la programación estructurada.
Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis, cada lenguaje tiene una sintaxis propia para expresar la estructura.
2.2.2 ARREGLOS
Es un acomodo de espacios (Como en una matriz) en los cuales es una colección de un tipo de dato, y pueden ser unidimensionales, bidimesionales o multidimensionales
Es un conjunto finito y ordenado de elementos homogéneos (del mismo tipo de datos). Es un tipo de dato estructurado simple o estático y pueden ser vectores o tablas (matrices).En lenguaje C, se pueden definir conjuntos de datos conocidos como arreglos. Por ejemplo, si deseáramos guardar en un arreglo, diez valores enteros, debemos definir este arreglo de la siguiente manera: int elem[10]; Esta expresión es la declaración del arreglo. Donde int es el tipo de datos que almacena el arreglo, elem es el nombre del arreglo, y el número encerrado en los corchetes es el número de valores que contiene el arreglo.
2.3 MANIPULACIÓN DE FORMULARIOS HTML MEDIANTE UN LENGUAJE DE PROGRAMACIÓN WEB
1. Páginas en lenguaje HTML. HTML (HyperText Markup Language) es el lenguaje por defecto utilizado para la construcción de paginas web y compatible con todos los navegadores en internet. Tiene como característica principal la presentación de gráficos y texto de forma estática.
El movimiento puede ser insertado mediante gráficos animados (gift) o con tecnología Shockwave Flash de Macromedia. Para agregar mayor interactividad ó dinamismo es necesario insertar programas adicionales en lenguajes como Java ,Perl, asp, php, o bien, realizar toda la construcción en Flash.
2. Páginas en Flash. Flash es una nueva tecnología desarrollada por Macromedia que permite añadir gran cantidad de movimientos y efectos visuales a una pagina web. Al combinar esta tecnología con el lenguaje de programación Actions Script, se pueden desarrollar una infinidad de asombrosas aplicaciones interactivas con el usuario, no disponibles anteriormente en la red.
Sin embargo, por razones de costos y compatibilidad en los navegadores, en cada proyecto web existen consideraciones técnicas evaluadas por nuestros consultores que determinan el nivel de aplicación adecuado de esta herramienta en función de los objetivos.
3. Lenguajes de programación (Java, Php, Asp, Perl, Actions Scripts). Estos son los lenguajes de programación reconocidos en los Navegadores (Explorer, Netscape) y Servidores en Internet. Mediante estos lenguajes podemos programar innumerables aplicaciones Web útiles para nuestros clientes (Ejem. Foros, formularios, manejo base de datos, etc.).
2.4. ACCESO A BASE DE DATOS
Cada vez mayor número de sitios web utilizan páginas creadas en Java, ColdFussion, ASP, CGI o PHP que permiten acceder a las bases de datos corporativas. Estos productos y lenguajes, conocidos como middleware, interrogan a la BD, procesan su respuesta y la devuelven en formato HTML que pueda visualizar un navegador convencional.
El acceso a través de Internet posibilita una forma rápida y cómoda de acceder a la información almacenada en la BD con el fin de recuperarla, codificarla o insertarla. Se despliega así todo un amplio abanico de posibilidades para el diseño de páginas web: catálogos en línea, con información siempre actualizada sobre productos; información sobre visitantes, que puede actualizarse dinámicamente a medida que éstos navegan por el sitio web; generación al vuelo de páginas, en función de selecciones o gustos del cliente, o del momento del día, o cualquier otro criterio; puede conservar el contenido de un sitio web en una BD, que se cargue dinámicamente cuando el usuario solicita una página, de forma que separe el diseño y formato de las páginas de su contenido; servicios en línea, como correo web, acceso remoto a BD corporativas, noticias, guías de servicios y un largo etcétera. A lo largo de este curso se explicará con un sencillo ejemplo cómo diseñar aplicaciones en ASP que accedan a bases de datos.
2.4.1 CONEXIONES
La conexión a Internet es el mecanismo de enlace con que una computadora o red de computadoras cuenta para conectarse a Internet, lo que les permite visualizar las páginas webdesde un navegador y acceder a otros servicios que ofrece esta red. Las empresas que otorgan acceso a Internet reciben el nombre de proveedores(ISP).
Punto donde se realiza un enlace entre dispositivos o sistemas. También conexión hace referencia al enlace completo.
Una conexión puede ser alambrada o inalámbrica, digital o analógica, virtual o real, etc.
Por ejemplo, el acceso a internet es un tipo de conexión.
El objetivo de una conexión es transferir datos.
2.4.2 MANIPULACIÓN Y PRESENTACIÓN DE DATOS
Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados porbases de datos IMS/DL1, CODASYL u otras.
Clasificación del lenguaje de manipulación de datos:
Son DML : Select, Insert, Delete y Update
Se clasifican en dos grandes grupos:
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento especifico para obtener esa información.
2.5. SEGURIDAD DE UNA APLICACIÓN WEB
Últimamente he recibido algunos correos electrónicos preguntándome acerca de la seguridad de las aplicaciones WEB, y como hacer para incorporar en la diseño seguridad, por eso he decidido escribir este articulo, este articulo esta dividido en dos secciones una especifica para desarrolladores en la que hablaremos acerca de las consideraciones de comunicación e intercambio de información y otra para los administradores para hablar de cómo hacer el setup o montaje inicial de dichas aplicaciones, la mayoría de los conceptos son tomados de mi experiencia en desarrollo de aplicaciones así como su aseguramiento.
El caso del desarrollador es el caso mas complejo de los dos por eso he decidido abordarlo en primera instancia, dada la cantidad de configuraciones que se pueden tener he decidido resumirlas de la forma mas genérica para poder limitar los escenarios que se pueden tener en una organización, el primer caso es el mas típico que se encuentra en muchas organizaciones que prestan servicios a Internet (Web services o hosting) existe una conexión a Internet y los clientes consultan la información desde su ubicación, en este caso existen múltiples alternativas de ataques y varis opciones de defensa, miremos en orden primero las alternativas de ataque y cuales son los riesgos que presentan para la información que se almacena en las aplicaciones.
Inyección de DNS: consiste en alterar los registros del sistema dns autorizado para entregar la información a los clientes sobre la ubicación de una URL, en la mayoría de los casos no es una opción difícil de realizar dado que muchos de los DNS que están implementados están relativamente abiertos a manipulación externa por una pobre seguridad, como afecta eso a la aplicación? Desde el punto de vista del usuario es transparente puesto que para el la aplicación sigue disponible, sin embargo los requerimientos que se hacían en la grafica a la maquina Web ahora se hacen a la maquina del “Intruso Web” por lo que este sistema es el que puede recolectar toda la información de usuarios y claves, así como los datos del cliente remoto, una vez capturados puede redirigir a los usuarios al sitio “Web” verdades y nunca el usuario ni el sitio “Web” original se enteran de dicho fallo.
No hay comentarios:
Publicar un comentario