Tuesday, August 31, 2004

Seguridad

Una de los aspectos más importantes de todo desarrollo web es la seguridad que pueden ofrecer, instituciones como bancos o tiendas en línea deben establecer una serie de mecanismos con el fin de salvaguardar la información de los clientes y transacciones que se ejecutan 24x7, pues los chicos malos siempre están al acecho para explotar las vulnerabilidades del software/hardware y hacer de las suyas, ninguna institución está libre de ellos, por eso valen los consejos de los expertos.

Estrategias para diseñar una app segura:



Configuración del servidor
Esto va desde la instalación del sistema operativo hasta los servicios que correrán en él. Dentro de los sistemas operativos para servidor, Windows 2003 es el abanderado, mientras que Linux también se ofrece como alternativa seria ya que está menos expuesto a ataques. El sistema de archivos es también parte importante, NTFS es mucho más seguro que FAT32 además de manejar discos duros de gran capacidad más eficientemente.

Muchas empresas instalan diversos servicios en un mismo equipo: Base de Datos, Correo, servidor de aplicaciones, etc, es conveniente evaluar cuáles pueden convivir y cuáles deben residir en equipos separados, pues la vulnerabilidad de un servicio inevitablemente afectará al otro. Aquí se aplica la frase de que la cadena se rompe por el eslabón más débil.

No dejar instalados servicios BETA en el servidor, es conocido que dichas versiones carecen aún de seguridad eficiente en su diseño y puede ser una puerta abierta para posibles ataques.

Parches
Es necesario instalar las últimas correcciones al software de servidor, no necesariamente todas, pero sí las más urgentes, asegurándose que no afecte otros componentes instalados. Siempre es bueno informarse antes de instalar cualquier parche, se dan casos de parches que abren huecos por otros lados o dañan aplicativos importantes.

Control de Acceso
Las contraseñas deben tener mecanismos de seguridad desde el momento que son creadas, los sistemas pueden aplicar validaciones a fin de que dichas claves presenten un patrón determinado, que incluya números y ¡hasta signos! (%, $, #, etc). Dentro de una app web, se suele almacenar contraseñas en archivos de texto cifrados, pero se recomienda usar una conexión de confianza.

Evitar usuarios con todos los privilegios, si su contraseña se filtra, cualquiera podría hacer mal uso de esta y modificar o dañar información sensible de la empresa. Incluso el usuario puede compartir su clave, y sí suceden estos casos, lo cual hace imperativo restringir los accesos.

Seguimiento
Los logs también juegan una parte importante, pues deben registrar de dónde se conecta cada usuario y quién realiza tal o cual operación, esto permite identificar y hacer seguimiento de operaciones dolosas o sospechosas en el servidor.

Validaciones
Las entradas que el usuario realiza por medio de un formulario web deben pasar por una serie de filtros, ASP.NET posee controles que permite realizar un conjunto de validaciones, cosa que no he visto en PowerBuilder o Java, si alguien conoce que hable ahora o calle para siempre, o hasta que salga eso en dichos lenguajes. Con esto evitamos que un usuario conocedor, ingrese sentencias SQL adrede para modificar datos.

Herramientas de encriptación
La información que viaja a través de la red puede ser fácilmente interceptada, por lo que mecanismos de encriptamiento se hacen necesarios, un ejemplo es el estándar SSL.

Si bien los ataques no se reduciran aplicando todas estrategias, será posible mantener la información segura y nuestros usuarios podrán respirar tranquilos, en caso de desastre informático, una buena política de backups nos salvará del apocalipsis, a pesar de que siempre en un backup falta algo por backupear.


Visitar aquí, un artículo de MS acerca de estrategias de seguridad.

Thursday, August 26, 2004

ASP.NET (2)

Dentro de lo nuevo en ASP.NET están:

* Web Form
* Code - Behind

¿Qué es un formulario web o web form?

Es una combinación de HTML con código oculto de cualquier lenguaje .NET (sea VB o C# o cualquier otro), así como controles, manteniéndose toda la lógica para el servidor y sólo dejando la interfase de usuario para el cliente, como quien regresa a las épocas de los mainframes.

No hay que pensar en los web form como simples páginas asp, de hecho ya no lo son, ahora usan la extensión aspx y no es un archivo, sino 2, uno que tiene la plantilla (aspx) y otro conteniendo el code-behind, este último con extensión .aspx.vb o .aspx.cs (no estoy equivocado, así es la extensión).

Antiguamente el cliente se encargaba por ejemplo, de la validación con código javascript, eso cambia pues ASP.NET deja menos cosas para gestión del cliente, convirtiéndolo prácticamente en un terminal tonto.

¿Para qué es el code-behind?

Simplemente para evitar a los diseñadores tener que lidiar con el código que ellos no conocen (cualquier cosa que no sea HMTL) y evitar que cometan algún tipo de desastre al sobreescribir dicho código. En realidad no está oculto el código fuente, sino que está detrás de la plantilla HTML. Este código al momento de cargarse se compila una sola vez para ejecutarse tantas veces como lo pida algún usuario. Me hace recordar los .java y .class con jsp.

Si eres anti Microsoft y piensas que code-behind es una patada al hígado, haz click aquí aquí, una opinión más especializada te puede ayudar.

Monday, August 23, 2004

ASP.NET

Ya de un buen tiempo atrás tenemos al ASP para la creación de páginas de contenido dinámico, pero con ocasión de la tecnología .NET, ASP fue reescrito desde 0
pero manteniendo cierta compatibilidad con el ASP clásico, (esto lo dicen los libros).

Características

Dentro de lo nuevo está:

* Web Forms: Se combina con VB para crear formularios dentro de una página web.

* Controles de servidor: Componentes que se ejecutan en el servidor y el cliente los ve como HTML.

* Web Services : Servicios que pueden ser llamados de cualquier parte de Internet usando SOAP y XML.

* Caching: Reduce la carga de las páginas

* Mejoras en Configuración: Ahora todo se guarda en XML, más legible para humanos... (esto depende ah)

* Seguridad (sic): Nuevos métodos de autenticación.

Friday, August 20, 2004

Qué es .NET?

Simplemente un conjunto de tecnologías para el desarrollo de nuevas aplicaciones que puedan interactuar independientemente del medio en el que se encuentren desarrolladas.

Consta de
.NET Framework
.NET Enterprise Servers
Lenguajes y herramientas de .NET

.NET Framework
Es la base donde las aplicaciones y los servicios XML son generados y ejecutados. La naturaleza del .NET framework hace que una aplicación de cualquier entorno (web, win32, o la que fuese) se pueda desarrollaron usando un mismo conjunto de herramientas y que estén integradas. Está dividido en :

* CLR
* Biblioteca de clases

CLR (Common Language Runtime). Que es el entorno donde se ejecutan los programas escritos en lenguajes .NET, se encarga del manejo de memoria, gestión de objetos, recolección de basura, permite la herencia, etc.

CLR recibe un lenguaje intermedio generado por el compilador, que es a su vez nuevamente compilado la primera vez que se ejecuta, llamado managed code, pues el CLR se encarga de él.

Los componentes que son escritos en código administrado se les llama assemblies y se parecen a los COM, pero con la diferencia de que los assemblies son autodescriptivos, es decir, no necesitan ser registrados para trabajar. (¿¿¿¿Adios regedit????)

- Biblioteca de clases, es un conjunto de clases base que evita que los desarrolladores se compliquen al programar en .NET

Estas clases están ordenadas en contenedores llamados namespaces (como los paquetes en Java). En el Quick Start del .NET framework hay un class browser donde se pueden ver todas los namespaces y clases que contienen, parecido a los documentos del API de Java

.NET Enterprise Servers

Son el primer paso en la evolución de la plataforma de desarrollo son:

SQL Server: Base de datos
Exchange 2000 Server: Herramienta de mensajeria y colaboración de MS, incluso de workflow.
Commerce Server 2000: Para crear sites de comercio electrónico al instante.
Host Integration Server 2000: Sucesor del servidor sNA de MS, permite el acceso basado en COM a las funcionalidades de entornos tipo DB2 CICS, IMS y entornos de mensajeria basados en MQSeries.
BizTalk Server 2000: Creación de app btob.
Internet Security and Acceleration (ISA) Server 2000: Diseñado como el sucesor de MS Proxy Server.
Application Center 2000: Trabajar con clustering de app.

Herramientas de programación

¿Alguien usa el bloc de notas para hacer páginas ASP?... pucha...

Si antes había un aplicativo para cada lenguaje ahora hay uno solo para todos los lenguajes (de MS obviamente), este es el VS.NET que significa una convergente del Interdev, VB, VC++ y demás. Además .NET proporciona un conjunto de reglas para permitir a otros lenguajes ser compatibles con .NET O sea no hay escapatoria para programar en .NET, ¿alguien pidió programar en Java?

Wednesday, August 18, 2004

Planeamiento Estratégico

Algo importante es definir a qué estoy apuntando, entonces debo buscar información acerca de los exámenes de MCAD y qué temas vienen, felizmente en la siguiente dirección http://www.microsoft.com/learning/mcp/mcad/requirements.asp están todos los exámenes y lo que viene en ellos, así como los cursos y libros recomendados.

Se supone que tienes que elegir 2 exámenes del tipo core y 1 más dentro del grupo de electivos. Los que decido llevar luego de una cuidadosa evaluación, que implicaba ir a Plaza Francia a ver qué materiales habían, conversar con mi amiga Katy para ver qué tenía a la mano y en mi chamba ver esos libritos de .NET que me parecieron tan apetitosos.... (el jefe de soporte me lo dio así nomás, por lo que la chela la pude usar para brindar por el inicio del curso autodidacta), los exámenes son:

Exam 70–305*: Developing and Implementing Web Applications with Microsoft Visual Basic® .NET and Microsoft Visual Studio® .NET

Exam 70–306*: Developing and Implementing Windows-based Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET

Exam 70–310*: Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft .NET Framework

Algo bueno es que para el MCSD son 2 exámenes más, adicionales a los del MCAD, así que no está tan lejos tampoco, estos serán:

Exam 70–300: Analyzing Requirements and Defining Microsoft .NET Solution Architectures

Exam 70–229: Designing and Implementing Databases with Microsoft SQL Server™ 2000 Enterprise Edition

Ahora pongámonos plazos, dudo que para fin de año pueda llegar a MCAD, así que lo ponemos como fecha máxima fines de enero.

1er examen: fines de setiembre
2do examen: quincena de noviembre
3er examen: fines de diciembre si llego, sino, el otro mes.

Claro que son tentativos, a lo mejor avanzo más rápido, al menos el plan está dado.

Tuesday, August 17, 2004

Instalando al enviado del diablo

Maldito, quiero instalarlo en windows 2000 pero tiene que estar con el SP 3 por lo menos y las extensiones de servidor instaladas y configuradas. Por suerte en la chamba había service pack 4, me dicen que viene con el 1, 2 y 3 incluído, pero el de soporte se pone especial y no me lo quiere dar, 'lo puedo conseguir de otra parte no hay problema' y resiste en su intento de que le ruegue, me da el cd sin mayores atenuantes y yo feliz.

Ya en casa empiezo con la tarea, titánica por lo que algunos me han contado de instalar el Visual Studio.NET, empieza instalando sus prerequisitos entre los que están
MFP 2000 Web Extensions Client: Frontpage
Setup runtime files: No sé qué será
MSIE 6 SP 1: El serrucho de Netscape
MS DAC 2.7 SP 1: Componentes para acceso a datos
.NET framework 1.1: El framework, (si no sabes qué es un framework, lo aclaro luego)
MS J# .NET Redistributable Package 1.1: No sé qué es....

Empieza a instalar pero pide también la clave del usuario (!!!) con el fin de no hacerlo las n veces que reiniciará la PC, tal vez pensaron que así podrías irte a pasear, salir al cine mientras instala .NET, pero si sale un mensaje de alerta que requiere presionar un botón, fuiste!!!! Por eso no pude dejar sola la máquina, el Event Viewer sonaba a cada rato y adios innovación.

Los prerequisitos demoraron 10 minutos, pero eso es sólo el inicio.

Viene la instalación del Visual Studio .NET, y siempre la EULA (End User License Agreement) primero... Be sure to carefully read and understand all the rights and... de frente I agree y la clave del producto... Aceptar

Las caracteristicas del VS.NET me comen 1.6GB aprox de mi HD, es que queria instalar todo pe.

Mientras ejecutaba, tuve a la mano mi CD porno con lo que me pude distraer los 45 minutos que duró La instalación, hasta que por fin, mi VS.Net en mi Athlon.... pronto Linux...


Thursday, August 12, 2004

MCSD

No no no, ya me decidí, estudiaré para el puto MCSD, le tengo un hambre de hace 3 años, así que primero veré qué cosas tengo a la mano: El Site de MS donde dicen qué hacer para obtener el certificado http://www.microsoft.com/learning/mcp/mcad/requirements.asp, además, necesito los materiales, mi amiga Katy tiene algunos, previa cena puedo hacer que me los preste. :D Luego el VS.NET, que se encuentra en cada esquina, (de Wilson), y de seguro también está en esa cajita (cajota), que dice .NET en la oficina del jefe de soporte, ya veré cómo le hago para que me la preste, (recuerdo que tengo una lata de cusqueña en mi refri hace 2 semanas), y ver de paso qué más hay allí aparte de CDs.