Archivo de la categoría Programación

Vulnerabilidades en la Web de P.C. Green (Parte V)



Después de unos meses con el tema de las vulnerabilidades en la web de P.C. Green abandonado, continuamos con la quinta entrega. Si te perdiste las anteriores, las tienes accesibles desde aquí.

Me ha alegrado ver que la web es totalmente nueva, tanto a nivel de diseño, como a nivel de tecnología.

La valoración del nuevo diseño, es positiva, mucho mejor que el anterior, pero regular comparado con lo que debería ser.

A nivel técnico, se usa ahora PHP en vez de ASP, lo que la hace más resistente a ataques de SQL Injection, de serie.

Parece que se han tomado mis artículos en serio, y todas las deficiencias comentadas han quedado resueltas.…

Continuar leyendo...

SlickEdit 10



Llevo usando SlickEdit como editor para programar desde la versión 8.

Me parece un entorno de trabajo con excelentes características. Quizás en algunos aspectos, CodeWright fuese mejor, pero ahora que Borland ha decidido abandonarlo, no hay lugar a dudas.

La nueva versión 10, me ha sorprendido con las mejoras en rendimiento, interfaz, y refactorización de código.

Con las mencionadas mejoras, SlickEdit, queda en mi opinión por encima del antiguo rival: CodeWright 7.5.5, manteniendo el soporte multiplatarma, y una mayor configurabilidad. Para variar, lo peor es el precio: A partir de 284 $.…

Continuar leyendo...

Evitar el bloqueador de popups



Por casualidad he descubierto como burlar al bloqueador de popups de Firefox, y Opera. Y así conseguir abrir tantas ventanas emergentes como nos plazca.

En las diferentes configuraciones donde lo he probado, el sistema ha funcionado sin problemas. Siempre bajo Windows, con Flash 7 y diferentes versiones de Firefox y Opera. Sorprendentemente Internet Explorer 6, detecta sin problemas el "truco".

La idea es bien simple. Se trata de hacer que el encargado de abrir el popup no sea directamente la página HTML que estamos visualizando, sino un elemento Shockwave.

Sería algo así:

1) Incrustamos una llamada al Flash que se encargará de abrir el popup.

Continuar leyendo...

Código automodificable en PHP



Recuerdo haber utilizado código automodificable (self modifying code) desde ensamblador, y en menor medica con C/C++.

En cambio jamás he visto utilizar esta técnica con lenguajes que no son nativos de la máquina.

El código automodificable, consiste en alterar directamente el programa que está en ejecución en ese momento, desde el propio programa. Así por ejemplo, podríamos encriptar y desencriptar el código completo en tiempo de ejecución, o hacer que una función que antes incrementaba un contador, ahora lo decremente.

En cualquier caso, la utilidad del código automodificable, ha sido puntual, quedando marginada a técnicas antidepuración, o a optimizaciones de tamaño.…

Continuar leyendo...

Mala práctica 3



Continuamos con la recogida de Malas prácticas de programación, esta vez con su tercera entrega. Tienes las anteriores aquí.

Esta vez el problema vuelve a ser de formateo de código, en este caso, causada por una indentación definciente.

Como se puede apreciar, se ha perdido casi totalmente la estructura de bloques lógicos.

De forma visual, necesitamos aplicar cierto esfuerzo para hacernos una idea de la estructura que sigue el HTML; lo que es peor, el <tr></tr>, pasa desapercibido, de forma que el resto de código que le sigue no es válido.

Las causas que intervienen para llegar a una situación así son:

1) Criterios de indentación no definidos o no consolidados: Da igual si utilizamos una cantidad de espacios o de tabuladores determinada (en mi opinión mejor tabuladores), pero siempre, y todos en el equipo de desarrollo, deberán seguir esa convención.…

Continuar leyendo...

GeoURL



Con GeoURL, podemos especificar la ubicación geográfica de nuestra página web, de forma que pase a formar parte de la base de datos global.

Esto permitirá que los usuarios puedan conectarse a sitios que estén geográficamente cercanos al nuestro.

El proceso es tan sencillo como agregar un meta tag en nuestra página informando de la longitud y latitud del mismo, y posteriormente notificar al servidor de GeoURL, para que lea este meta tag, y lo archive en su base de datos.

En mi caso la meta etiqueta que he agregado ha sido:

<meta name="ICBM" content="041.42300, 002.18700">



Continuar leyendo...

"Hola" + 10



Hubo un tiempo, no demasiado lejano todavía, en el cual, era lógico para un programador pensar que el resultado de "Hola" + 10, era numérico.

Un puntero a una dirección de memoria más concretamente.

Hoy en día, es difícil aplicar una regla general a los lenguajes, algunos dan un error de compilación, otros una excepción en tiempo de ejecución, otros retornan "Hola10", y los menos un puntero.

Todo esto viene a colación, porque creo que en 10 años como mucho, ya nadie sabrá C ni C++. Será una situación parecida a la que vivimos hoy en día con el ensamblador. No me refiero a que los desarrolladores no vayan a saber lo que es C o C++, inclusive puede que conozcan sus reglas básicas, pero serán incapaces de programar algo con sentido en este lenguaje.…

Continuar leyendo...

Mala práctica 2



Después del éxito obtenido con la Mala práctica 1, aquí va la segunda.

En esta nueva entrega, el error cometido está mucho más delimitado, siendo tan evidente, como sorpredente: ¡Una linea de 341 caracteres de longitud!

Por motivos de legibilidad, edición de código, y también de impresión en papel, no es recomendable escribir lineas de código tan largas, debiendose establecer la longitud máxima en unos 140 caracteres; siendo lo ideal inferior a 80.

Así evitaremos que los desarrolladores que vengan luego (¡ojo, que podríamos ser nosotros mismos!); tengan que ir navegando horizontalmente por el código.…

Continuar leyendo...

Visual Basic for DOS



No es demasiado conocido que Microsoft hiciera una versión de Visual Basic para DOS.

Aún así existió, combinaba el mismo modelo de programación basado en objetos del popular Visual Basic 1, y el interfaz de desarrollo basado en formularios.

Los programas desarrollados con este entorno, se ejecutaban bajo DOS en modo real, con una interfaz de ventanas en modo texto.

El compilador, era Basic Compiler 8.0, una evolución más del popular Microsoft Basic Professional Development System 7.1, y totalmente compatible con el estándar Quick Basic.

La versión profesional, incluía acceso a bases de datos a través de TSR.…

Continuar leyendo...

Undefined no está definido



'undefined' no está definido.

Es increíblemente curioso este error reportado por Internet Explorer 5.0.

Evidentemente el valor de undefined no está definido, así es como funciona, y como debería funcionar. Lo que no veo claro es que sea un error…

El código que lo genera, es algo del estilo:

if (Variable==undefined)
{
...
}

En efecto parece ser un error en esa versión de Internet Explorer, ya que en las más recientes 5.5 y 6.0 funciona correctamente. Con Opera y Firefox/Seamonkey también funciona sin problemas.



Continuar leyendo...