Eduardo marzo 20th, 2007
Después de meses de programar en Java realmente me he dado cuenta de lo increiblemente bien planeado, organizado y bien hecho que es Java, realmente mis respetos a James Gosling (creador de Java) y a todo el equipo de desarrollo, pues nunca me había topado con un lenguaje tan bien hecho.
Algunas cosas que realmente me han impresionado de Java:
- Las clases anónimas que son clases que ni siquiera estan definidas en un archivo, sino que se heredan a una clase pero sobreescriben un método que tal vez no querías de ese modo, por ejemplo:
jLabel1 = new JLabel("Hola") {
public String getText() {
return "El texto es:"+super.getText();
}
});
Lo cual haría un nuevo JLabel o sea un componente que sirve para etiquetas de texto, pero cambiaría el método getText por ese otro, lo cual devolvería por ejemplo El texto es: Hola
Continue Reading »
Eduardo marzo 19th, 2007
Después del post pasado que hablé sobre el desbordamiento de buffer (buffer overflow), ahora les diré que ya hay algunas soluciones a esos ataques.
Ya que esta vulnerabilidad es principalmente aprovechar el procesador, existen hoy en día algunos procesadores que evitan que pase un desbordamiento de buffer, el problema realmente es que no todos los sistemas operativos lo soportan, por ejemplo Windows XP sólamente lo soporta en algunos procesos críticos a partir del Service Pack 1, y se supone que en Vista agregaron mayor soporte para eso, pero por otra parte sistemas operativos como Sun Solaris lo soporta desde hace 10 años al parecer, y Mac OS y Linux desde hace algunos años, pero el problema es realmente que Windows el que es más atacado no lo soporta por completo.
Este bit se refiere a que marca un bit como No eXecute, o sea no se puede ejecutar nada pasando de ese bit, por lo que todas las técnicas de desbordamiento de buffer se ven inútilizadas, cosa que es mucho más segura.
Sobre el mismo ejemplo del río que mencioné el post pasado podríamos pensar como que cuando el agua llega a la torre de energía eléctrica no pasaría nada, simplemente estarían encimándose los datos pero no se podría ejecutar nada.
(Más información: Kriptópolis)
Eduardo marzo 14th, 2007
Algunos quizá hayan escuchado éste término, sin embargo probablemente no muchos sepan realmente en que consiste, asi que en éste post explicaré más o menos de que se trata.
El desbordamiento de buffer es una posible vulnerabilidad en programas hechos en lenguajes como C o C++, que puede llegar a ser tan grave como darle privilegios completos a alguien sobre un sistema operativo, es de los métodos de hackeo, uno en donde se puede aprovechar al máximo la vulnerabilidad de algun programa, y donde puede llegar a ser más crítico el problema.
Qué pasa por ejemplo cuando en un río sube el nivel del agua a un grado que no cabe el agua, pues el río se desborda y se lleva con él arboles, casas, etc. Totalmente un desastre natural, bueno en computación pasa algo parecido, pero imaginemos que el espacio en donde esta el río o sea el canal de tierra por donde pasa el río es el espacio en memoria que esta disponible para guardar algún dato, y el agua del rio es la información con la que intentaremos llenar ese espacio, si le damos más información de la que debe ser ocurrirá un desbordamiento de buffer.
Continue Reading »
Eduardo febrero 13th, 2007
Cuando entran a una página como al mail, sin que ustedes se den cuenta se genera automáticamente una variable de sesión, la cual sirve para identificar que una sesión esta activa, hay formas de verificar que una sesión esta activa, y con esto el servidor te da acceso o lo rechaza, una sesión no es mas que una cookie que expira en el momento que cierras el navegador.
Cada que entras a alguna página lo que valida la sesión es el servidor, asi que para que lo haga el navegador, envía las cookies pertenecientes a ese dominio al servidor, y con ésto puede identificarte.
Continue Reading »
Damián febrero 7th, 2007
Tiempo atrás publiqué un artículo sobre backtracking, en donde se vio como salir de un laberinto, ahora les voy a exponer la manera en que se puede implementar esta técnica recursivamente para resolver el problema del Circuito del Caballo.
Continue Reading »
Eduardo febrero 2nd, 2007
Ésta vulnerabilidad hace que el Internet Explorer deje de responder y se salga, tal como lo hacía el Torpedo de Zalweski con Firefox simplemente al pulsar éste enlace
La buena noticia es que parece que sólamente falla el programa y no permite que ejecuten código, cosa que es buena, aun asi es molesto.
(Vía:Kriptópolis)
Eduardo enero 31st, 2007
¿Has tenido que reemplazar a mano algunas cosas? en un texto enorme, creo que es algo muy frustrante y asi como para ti lo es, también para los programadores, o para algun diseñador, pues es frustrante estar en dreamweaver y tener que reemplazar etiqueta por etiqueta, o encontrar dentro de todo un sitio, una simple palabra.
Continue Reading »
Damián enero 18th, 2007
Seguramente a estas alturas ya les habrán pedido que programen la exponenciación entera de un número para ilustrarles algunas estructuras de control, pero es muy probable que no se hayan preguntado cómo se podría hacer más eficiente una exponenciación o de plano pensaron que es lo mejor que se puede hacer (hacer todas y cada una de las multiplicaciones).
Aqui les voy a exponer un método sencillo y muy usado para exponenciar en grande de una manera más eficiente.
Continue Reading »
Eduardo enero 17th, 2007
Esto se debe principalmente a la forma en que pensaron el sistema operativo, por ejemplo en todos estos sistemas hay un usuario root, encima de cualquier otro y los permisos se basan en grupos y usuarios, hay archivos del sistema que no pueden ser modificados por nadie mas que el mismo usuario o el root.
Continue Reading »
Damián enero 1st, 2007
El backtracking es una técnica usada en computación que se resume como ir explorando un problema por todo un árbol de combinaciones, en donde forzosamente alguna de las posibles combinaciones es solución del problema. Parecida a la técnica humana cuando se quiere resolver un problema nuevo y no tan obvio, en donde sólo se conocen las reglas del problema y se tiene que ir probando por caminos diferentes para encontrar la solución.
En éste artículo se va a dar una aproximación a la estrategia.
Continue Reading »