lunes, 7 de mayo de 2007

Curso de HTML (Parte 2)

Reinyer Reyes Zayas

En la primera parte aprendimos a colocar texto e imágenes en una página web. Vimos comandos para darle formato al texto, estilos, alinearlo, separarlo en párrafos y ponerle títulos. También vimos como incluir imágenes, y alinearlas. Con estos comandos se puede hacer una página básica.

En esta segunda parte veremos comandos que nos dan mucha más flexibilidad para mostrar la información en pantalla.

Listas en HTML

Las listas son simplemente eso: listas. Exactamente igual que cuando hacemos una lista de compras para el supermercado. Las listas son muy simples. Hay diferentes tipos: listas desordenadas, ordenadas y de definiciones. Comencemos por las más simples, las desordenadas.

Listas desordenadas

<UL TYPE="disc">
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</UL>
asi se ve --->>>
  • papas
  • salud
  • dulce de leche
  • pan

Como ven, confeccionar una lista es muy simple. Primero especificamos el tipo de lista, en este caso UL (unordered list) de lista desordenada. Luego cada item de la lista se indica con LI (list item). Fácil verdad? Verán también que hay un parámetro en UL, el TYPE="disc". Eso significa que el puntito que aparece a la izquierda de cada item de la lista sea un disco. También existen CIRCLE y SQUARE.

<UL TYPE="square">
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI TYPE=DISC>pan</LI>
</UL>
asi se ve --->>>
  • papas
  • salud
  • dulce de leche
  • pan

Tip: se pueden mezclar tipos de items como en el ejemplo anterior. Util para diferenciar items.

<UL TYPE="circle">
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</UL>               
asi se ve --->>>
  • papas
  • salud
  • dulce de leche
  • pan

No todos los browsers soportan esto. Es un pequeño detalle pero no esta de mas saberlo. Ahora pasemos a las listas ordenadas. Se definen exactamente igual a las desordenadas, salvo que se utiliza el comando OL (ordered list). Veamos un ejemplo:

Listas ordenadas

<OL>
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</OL>
asi se ve --->>>
  1. papas
  2. salud
  3. dulce de leche
  4. pan

En las listas ordenadas el puntito pasa a ser un numeral que indica el orden de cada item. Muy útil para numerar listas automáticamente, ya que no hay que ingresar en número de cada item a mano. Al igual que en las listas desordenadas, se puede elegir mediante el parámetro TYPE el tipo. Existen A, a, I, i, y por defecto 1. Veamos como quedan:

<OL TYPE=A>
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</OL>
asi se ve --->>>
  1. papas
  2. salud
  3. dulce de leche
  4. pan

 

<OL TYPE=a>
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</OL>
asi se ve --->>>
  1. papas
  2. salud
  3. dulce de leche
  4. pan

 

<OL TYPE=I>
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</OL>
asi se ve --->>>
  1. papas
  2. salud
  3. dulce de leche
  4. pan

 

<OL TYPE=i>
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <LI>pan</LI>
</OL>
asi se ve --->>>
  1. papas
  2. salud
  3. dulce de leche
  4. pan

Bueno, hasta aquí las listas. Ah, casi me olvidaba, se pueden incluir listas dentro de listas.
Cómo? Muy fácil:

<OL TYPE=i>
               <LI>papas</LI>
               <LI>salud</LI>
               <LI>dulce de leche</LI>
               <OL TYPE=1></LI>
               <LI>conaprole</LI>
               <LI>milky</LI>
               <LI>lapataia</LI>
               </OL></LI>
               <LI>pan</LI>
</OL>
asi se ve --->>>
  1. papas
  2. salud
  3. dulce de leche
    1. conaprole
    2. milky
    3. lapataia
  4. pan

Tablas en HTML

Las tablas son uno de los elementos mas versátiles del HTML. Sirven para todo. No siempre existieron las tablas. Cuando solo existía el HTML V1.0 no había tablas, recién con la versión 2.0 llegaron las tablas. Hoy casi todos los browsers soportan las tablas, aunque existen algunos que no lo hacen. Si tu browser no soporta tablas, cambienlo por una que si. Verán todo más claro ;)

Vamos a la práctica. Una tabla se define con el comando <TABLE> y debe finalizar siempre con </TABLE>. Cerrar una tabla es muy importante, sino la página puede aparecer totalmente diferente si nos olvidamos de un simple </TABLE>. Imaginen una hoja cuadriculada. Una tabla es eso, con sus filas (TR) y columnas (TD). Primero veamos una tabla simple:

<TABLE>
<TR>
               <TH>1996
               <TH>1997
<TR>
               <TD>30 millones
               <TD>80 millones
</TABLE>
asi se ve --->>>

1996

1997

 

30 millones

80 millones

 

 

Esa tabla está compuesta de la siguiente forma: Primero comienza la tabla con <TABLE<. Luego viene <TR>, indica que comienza una nueva fila (horizontal) de la tabla. Una tabla por lo menos debe tener una fila. Luego viene <TH>, que indica que comienza una columna. A continuación de este tag se coloca la información. Ven que en la segunda fila usa <TD> en vez de <TH>. TH significa TABLE HEADING, se usa cuando la información contenida es el nombre de una categoría. Simplemente lo que hace es resaltar la información. TD significa TABLE DATA y no resalta la información. TD y TH aceptan los siguiente parámetros:

HEIGHT

Indica la altura de la celda. Para especificar el tamaño en pixels solo ingresar la contidad, ej: HEIGHT=340 ; también se puede ingresar el tamaño en porcentajes, ej: HEIGHT=30%

WIDTH

Indica el ancho de la celda.

ALIGN

Permite alinear el texto dentro de una celda. Acepta LEFT, RIGHT, CENTER.

VALIGN

Permite alinear el texto verticalmente dentro de una celda. Acepta TOP, BOTTOM, CENTER.

BGCOLOR

Permite especificar el color de fondo de una celda.

ROWSPAN=n

Indica que esa celda se extiende n filas.

COLSPAN=n

Indica que esa celda se extiende n columnas.

Que mejor que un ejemplo para ver como se utilizan estos comandos:

Ejemplo 1 - Tabla Normal

<TABLE BORDER=1 WIDTH=400 HEIGHT=100>
<R>
               <TH COLSPAN=3>USUARIOS EN INTERNET EN URUGUAY
<TR>
               <TH>1995
               <TH>1996
               <TH>1997
<TR>
               <TD BGCOLOR="#553366" ALIGN=CENTER>1.500
               <TD BGCOLOR="#226666" ALIGN=CENTER>15.000
               <TD BGCOLOR="#553322" ALIGN=CENTER>80.000
</TABLE>
Así se ve:
USUARIOS EN INTERNET EN URUGUAY
1995 1996 1997
1.500 15.000 80.000

Ejemplo 2 - Tabla Loca

<TABLE BORDER=1 WIDTH=400 HEIGHT=200>
<TR>
               <TD ROWSPAN=2><FONT SIZE=+1><EM>Texto por aqui...</EM></FONT>
               <TD VALIGN=BOTTOM><FONT SIZE=-1>mas...</FONT>
               <TD><FONT SIZE=+1 COLOR="#FF0000">otro por aca...</FONT>
<TR>
               <TD BGCOLOR="#553322">y mas..
               <TD ROWSPAN=2 ALIGN=CENTER><FONT SIZE=+1>y por aca...</FONT>
<TR>
               <TD VALIGN=BOTTOM><FONT SIZE=+3>1A</FONT>
               <TD VALIGN=BOTTOM><FONT SIZE=+3>2B</FONT>
  </TABLE>
Así se ve

Texto por aqui... mas... otro por aca...
y mas.. y por aca...
1A 2B

En el correr de la semana agregaré más información sobre las tablas. Este fin de semana no he tenido mucho tiempo, asi que agregaré unas cosas importantes sobre las tablas que no mencioné aquí. Hoy en día, casi todo esta hecho de tablas. Netscape 3.0 tiene extensiones para hacer texto de multicolumnas automáticamente, pero no son estandard. Como regla general, aléjense de lo que no es estandard todavía.

Continuar leyendo

Pasitos de bebé

Alien García Agüero

Desde hace un buen tiempo ya que vengo pensando en la forma de aumentar el tiempo de conexión de Infomed, y cuando digo aumentando, me refiero a conectarme sin ser visto, es decir, que el servidor no cuente mi tiempo de acceso, o a buscar la forma de tener por alguna vía mas de 25 horas mensuales.

Las formas son muchas, varias amistades se van por el camino mas “sencillo”: “Bah, eso es fácil, se hackea el servidor”, pero hasta ahora, ninguno de esos que me aconsejan de esa forma se han sentado 5 minutos a decirme por que puerto entrar, que programa utilizar, y lo mejor, que hacer después que este adentro. Así que yo, por mis propios esfuerzos, me he dedicado a buscar vías alternativas para llegar al mismo destino.

He titulado este artículo pasitos de bebe, porque la forma mas fácil, y sencilla que he encontrado para navegar sin utilizar mi tiempo de conexión, es de alguna forma algo “lenta”. En uno de los primeros artículos de la revista, hablaba acerca del beneficio de desconectar el cable de teléfono de forma manual, y ahora, utilizo ese mismo método para navegar por un espacio de un minuto y pico con pausas de unos 40 segundos. Aclaro que esto se haga solo en casos de emergencia, cuando el tiempo que nos quede de conexión sea muy poco y todavía nos falten varios días para terminar el mes, el que quiera hacerlo desde el primero de cada mes es su problema, no le pasara nada, pero si es bastante molesto tener que quitar el cable de teléfono cuando aún tenemos varias horas a nuestro favor.

¿Como funciona?. Bien la idea es conectarnos normalmente a la red, una vez conectados, comenzaremos a navegar, entraremos a varias páginas (depende de la velocidad de conexión), etc, y antes de que pasen 2 minutos, quitar el cable del teléfono, de esta forma no se nos contara el tiempo de acceso (eso ya se había explicado en otro artículo anteriormente), y que el mismo sistema nos vuelva a conectar a Infomed en este caso. Seria útil, para aquellos que tengan dos dedos de frente, no cerrar el navegador, ni desconectar el cable cuando aun se este descargando la página, y para navegar yo les recomendaría el opera o el firefox o cualquier otro navegador que permita abrir varias páginas simultáneamente.

Me explico. Para esto, solo utilice las mismas opciones que me da el sistema operativo, para automatizar el proceso de conexión y desconexión, ¿de que forma?.

En inicio, conectar a, hacemos clic derecho sobre el nombre que le hayamos puesto a la conexión de Infomed, y vamos hasta la opción propiedades, luego hacemos clic en la segunda pestaña “Opciones”, y nos debería salir algo como esto:

Los cuatro checkbox (donde se ponen las palomitas), son para configurar el método de conexión, pero no es en ese punto en el que me quiero centrar. Mas abajo, aparece otro frame con el texto “Opciones para volver a marcar”. En la primera opción, que dice intentos de marcado, pueden poner el número que deseen, eso no es mas que para cuando el servidor de Infomed no responda (cosa que es “extraña” ¿verdad?), decirle a la maquina cuantas veces debe insistir. La opción que dice “Tiempo entre intentos de marcado”, será la clave en esto, puesto que se debe poner el menor número posible, ya que es el tiempo que debemos esperar desde que la maquina se desconecta hasta que se vuelve a conectar, pero si hay que tener mucho cuidado, puesto que en ocasiones, en dependencia de la configuración que tenga nuestro modem, pudiera ser que al desconectar, se devuelva la llamada y empiece a sonar nuestro teléfono, entonces a la hora de marcar daría como respuesta “Línea ocupada”, o algo por el estilo. Y por ultimo, en “Tiempo de inactividad antes de colgar”, seria bueno poner un número no tan alto ni tampoco tan bajo, ¿por que?, porque ese es el tiempo que esperara el modem para automáticamente tumbar la conexión (evidente ¿no?), si le ponemos un número muy pequeño (1 minuto por ejemplo), pudiera suceder que nos entretengamos mirando una página y que de momento se nos caiga la conexión, y de ponerle uno muy alto, podríamos desprevenidamente dejar la maquina conectada y se perdería todo ese tiempo, aunque advierto que esto no siempre funciona como tal, ya que cada un tiempo determinado la maquina chequea el estado de la conexión, o el navegador intenta actualizar una página que este abierta, o inclusive pudiera ser que nuestro gestor de correo quiera descargar algo.

Pero mas importante que todo lo anterior, es marcar el checkbox que dice “Volver a marcar si se interrumpe la línea”, ya que este es el que se encargara de que toda la configuración que hemos dado antes funcione correctamente.

Repito que esto no es para que lo hagan desde principios de mes, esto es mas bien para aquellas personas que ya a mediados de mes han consumido casi la totalidad de su cuenta, y aun no han terminado de entrar a todas las páginas sugeridas por su vecino.

Espero que abusen de esto todo lo que les de la gana, y ojala que a alguno de ustedes les sirva para entrar a Infomed para que luego me digan como pudieron hackearlo.

Continuar leyendo

Creando un troyano

Alien García Agüero

Con este artículo quiero mostrar alguna de las cosas que debe de tener todo virus para considerarse un troyano. Lo primero es saber que es un troyano y que hace.

Bien, según varios artículos, revistas y la misma web, un troyano no es mas que un programa que se mantiene residente en la maquina hasta que suceda un evento determinado, que pudiera ser la llegada de una fecha determinada, o una acción llevada a cabo por el usuario, o cualquier otra cosa que se le ocurra al creador del troyano, (eso no lo dice la web).

Bien, lo primero que debería tener nuestro programa seria una instrucción que permita conocer su ubicación, si esta en un medio de almacenamiento extraíble, que se duplique hacia la PC, y si esta en la PC, que verifique cada un determinado tiempo para comprobar la existencia de medios de almacenamiento, y si los hay, duplicarse hacia ellos. De esta forma estamos garantizando que se propague. Pero esto no para aquí…

Debemos crear una especie de virus madre, que será la que cargara la maquina desde que se prende, para esto debemos buscar una dirección que no se modifique tanto, una carpeta que sepamos que la mayoría de los usuarios temen entrar o cosas por el estilo, un ejemplo pudiera ser C:\windows\system32, ya que al tener varios ejecutables, nadie sospecharía si un día apareciera uno mas. Este virus madre debería tener un nombre especifico, para luego asegurarnos de por el registro mandar a cargar el virus desde que la víctima se despierta. ¿Como?, bien esto lo haríamos a través del registro, la mayoría de los lenguajes de programación (para no ser tan general), nos permiten trabajar con el registro, solo tendríamos que buscar algo como: HKLM\Software\Microsoft\Windows\CurrentVersion\Run, que es donde se guardan en el registro de Windows los programas que se inician al encender la maquina.

Bien, hasta aquí todo va viento en popa, pero, con un solo archivo no bastaría, después tendríamos que crear copias del mismo por toda la maquina, esto no se hace para llenar el disco duro, porque por muchos archivos que se coloquen por toda la maquina, nunca será suficiente para repletar nuestro disco (a menos que tengamos 800 Mb, y no se vayan a reír, conozco de personas que trabajan con eso), la finalidad de esto es que en caso de que se borre por cualquier motivo el archivo madre, poder desde cualquier lugar volver a reponerlo, porque recuerden que en registro la dirección que estamos mandando a ejecutar será la de la dirección de la primera copia, si esta desaparece…. Es como si nada. La idea es que cada archivo que creemos sea capaz de crear una copia en la carpeta superior a la de su ubicación, uno en la carpeta inferior, y verificar si en la carpeta madre se encuentra una copia también, si no lo esta, entonces ponerse ahí también.

Por otra parte, se puede también implementar algo para que no se quede copiando constantemente, es decir, si cada archivo que creemos le vamos a dar la opción de que se duplique, jamás se terminara de copiar, para solucionar esto se pueden hacer muchas cosas, en este momento a mi se me ocurriría crear un archivo en C:\ con la hora del momento en que se empieza a copiar, y que cada nueva copia verifique primero si esta en tiempo, si la hora a la que se va a hacer la copia nueva es 5 seg mayor que la hora en que se comenzó la primera, entonces que no se realice ninguna acción y que se borre el archivo que tiene la hora (recuerden que en 5 seg se pueden hacer muchas copias, y no queremos que el usuario vean muy lenta su maquina, por el momento. Y lo de borrar el archivo que tiene la hora es evidente, hay que borrar nuestros rastro ¿no?).

De aquí en adelante solo nos resta preparar el programa para que verifique si se esta haciendo uso del buscaminas (por ejemplo), y si es así, entonces que realice su verdadera acción, que puede ser desde borrar una serie de archivos importantes para el sistema, como mostrar un bobo “Hola Mundo” en la pantalla (cada cual se divierte con lo que quiera).

Heee!! un momento, antes que se sienten a programarlo, quisiera darle algunos consejos, no son mas que experiencias que he tenido en la creación de programas y que pienso que les pueden ser útiles.

  1. Sería bueno crear las nuevas copias con nombre distintos, si alguien ve por toda la máquina varios archivos con el mismo nombre podría sospechar, para esto deberíamos crear dentro del programa una lista de nombres (mientras mas mejor), y escoger uno de forma aleatoria.
  2. Para no copiar varias veces el mismo archivo, podríamos verificar primero si donde se va a copiar ya existe, pero como tienen nombre distintos podríamos hacerles una marca a los archivos, por ejemplo, yo al final del archivo le pondría una frase, esto se puede hacer si se abre el archivo de forma binaria, y se escribe lo que se quiera al final (En Visual Basic y en Quick Basic funciona, tendrían que probar ustedes en sus propios lenguajes). De esa forma se podría leer en ves del nombre del archivo, la ultima línea, y si coincide con nuestra frase….
  3. En el registro, se puede declarar varios archivos como madres (por si las moscas….)
  4. Tratar de copiar al menos un archivo en cada partición, casi todos tenemos la maquina particionada, y es sabido que en D:\ es donde tenemos las cosas nuestras. Así que aquí es donde mas posibilidades existen para que el usuario haga clic sobre nuestro pequeño hijito.
  5. Ponerle nombres sugerentes, algo que sepamos que a las personas les gusta, no quiero ser muy explicito, pero todos babemos que quiere decir esto: Juli_xxx.jpg.exe
  6. Sobre las extensiones, recuerden que hay muchos zonzos en el mundo que no tienen habilitada la opción de ver las extensiones en los archivos, así que el archivo anterior se vería algo como Juli_xxx.jpg, para todos, esto es una foto. Cosa que reforzaremos cambiando el icono de nuestro ejecutable.
  7. Una cosa que pudiera ayudarles también seria saber que se puede cambiar la extensión (.exe) por (.scr), por lo menos con las cosas que he probado, los efectos son los mismos.

No obstante, si quieren aprender mas sobre los virus y su funcionamiento, yo les recomiendo buscar el instalador del SAV (No, no les voy a pedir que se suiciden), y abrir el archivo que se llama…..… lo busque pero no lo recuerdo, ya le cambie el nombre, solo se que se pesa 1.17 Mb (aproximadamente), y no tiene extensión, el mismo es completamente editable (Los que hicieron el SAV son unos barbaros), lo pueden abrir con cualquier editor (No recomiendo el Notepad, se funde por gusto), dentro del mismo aparece un listado de virus y como actúa cada uno. Algo bueno tiene que tener el SAV.

Continuar leyendo

Ingeniería Social

Alien García Agüero

Hace un buen tiempo, casi al principio de los primeros hacking y esas cosas, se hablaba mucho de ingeniería social, incluso se le llego a catalogar como una forma de hackeo. Mi concepto muy particular, es que la ingeniería social no es mas que conseguir cosas por las buenas, es decir, no es imprescindible tener una computadora, ni un modem, ni ninguno de estos artefactos para averiguar la contraseña de una PC, o el password de una cuenta de correo. No es menos cierto que por esta vía no todo se puede obtener, pero tampoco queramos tapar el sol con un dedo, todos no sabemos hackear.

Es muchos mas fácil entrar a una sala de chat y conversar con alguien haciéndose pasar por otra persona, que buscar un programa en la web, y sin saber utilizarlo, empezar a apretar botones, para ver que es lo que hace cada uno, porque para mayor desventura, la mayoría de los buenos programas de hackeo carecen de ayuda.

Cuantas veces sin saberlo las personas nos han dicho sus contraseñas, sus nombres de usuarios, cuantas veces no hemos salido con una muchacha y la oímos repetir 100 veces “que linda es mi perrita, yo la amo”. Y en ocasiones hemos querido entrar a su maquina utilizando 20 programas, cuando la solución esta frente a nuestras narices “El nombre de la perra”.

Hay muchos tutoriales y textos que hablan sobre la ingeniería social, que debes decir, como debes actuar, que si debes escribir lento en los chat, que si debes aparentar que no sabes, pero la realidad es que la ingeniería social va mas allá. Además, por lo menos yo, los textos que he leído tienen algún tiempo ya, nadie va a caer (pienso yo), a estas alturas en el viejo truco de:

“Soy una muchacha joven que no sabe nada de computación, me podrías sugerir una contraseña para mi maquina.”

Y quien finge ser las mas desamparada de las personas espera del otro lado del teclado a que le escribamos un nombre que muy bien pudiera ser nuestro nombre de usuario.

La ingeniería social esta hoy un poco descontinuada, son pocas las personas que la usan por su poca efectividad. Pero quisiera llamar la atención sobre una cosa: La seguridad. Como la mayoría de ustedes sabrán mi cuenta es de Infomed, y por suerte o por desgracia, es una de las cuentas de correo que a mi entender es mas vulnerable a los fraudes, basta con conocer la dirección de correo de alguien para tener su nombre de usuario, que es el mismo que pondríamos en el cuadro de dialogo del correo. Y con un poco de conocimiento y suerte, se puede entrar en su correo poniendo como contraseña el nombre de……. de su perrita (ja ja ja).

No quisiera ser el típico aguafiestas, que les dice como escribir las cosas, que nombres poner, ni los voy a obligar a que se lean 20 páginas de información en ingles para al final decirles que en sus contraseñas pongan números combinados con letras, o que pongan el nombre de la marca de su TV, o cosas por el estilo. Cada cual hace con su cuenta de correo lo que sea, lo que mejor le plazca, pero este artículo no esta escrito por gusto, minutos antes mientras jugaba con Infomed, entre a una cuenta de correo, realmente ni leí lo que había, lo hice por puro cachareo, pero quizás a muchos de ustedes les lean diariamente el correo, por puro chisme, y eso si que esta mal.

Continuar leyendo