JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Servicios Web instantáneos y sin esfuerzo con Visual Basic 6 (Parte I)

Parece que hoy en día no hay nada que esté más de moda que los servicios Web ¿verdad? Crear un servicio Web con la plataforma .NET es algo sencillo si no nos metemos en profundidades.Puedes leer al respecto una introducción a los servicios Web y un ejemplo de cómo crearlos en Visual Studio en mis artículos de los números 185 (¿Qué son los servicios Web?) y 186 (Implementación sencilla de servicios Web con Visual Studio .NET) de PC World (por desgracia no tengo enlaces a los que se pueda acceder gratuitamente). Los programadores de otros lenguajes más antiguos, como por ejemplo Visual Basic 6, parece que están fuera de onda automáticamente. En realidad se pueden crear servicios Web con Visual Basic 6 y otros lenguajes antiguos de Microsoft (hasta directamente en ASP, nosotros en Krasis lo hemos hecho) gracias al SOAP Toolkit  3.0 de Microsoft. De todos modos hay que programar bastante y, antes de nada, hay que leer bien y aprenderse la documentación que trae el Toolkit. ¿Qué te p... [Más]

Cómo evitar problemas con campos numéricos en JavaScript

Cuando en un formulario Web tenemos un campo de texto (INPUT, type=text), que se utiliza para que los usuarios introduzcan números (por ejemplo su edad, un número de factura...) lo habitual es verificar su contenido con la función parseInt de JavaScript. Imaginemos por ejemplo que hay que verificar que un campo de este tipo no sobre pase un determinado valor. Normalmente escribiríamos una condición similar a esta: if ( parseInt(micampo.value) > valorMax ) alert("Se ha sobrepasado el máximo"); Un código sencillo, directo y, en apariencia, sin problemas. Pero, ¿qué pasaría si por ejemplo el usuario introduce el número '034', es decir, incluye el dígito cero precediendo al número?. Respuesta: que parseInt en lugar de devolver el número 34 que es sin duda el que esperábamos devolverá un 28. El motivo es que la función parseInt interpreta los textos que comienzan con un cero como números en base octal y no decimal, por lo que 034 se interpreta como el número 28 en base octal.... [Más]

Visor Web de ensamblados .NET 2.0

Me ha llamado mucho la atención esta utilísima herramienta basada enWeb que ha escrito Francesco Balena. Se trata de un visor de ensamblados .NET basado en Web, accesible públicamente y que trabaja con .NET 2.0. Te permite navegar por cualquier ensamblado y, utilizando reflexión, visualizar sus clases, miembros, interfaces, etc... pudiendo ahondar en ellos. Marca las novedades y diferencias entre .NET 2.0 y versiones anteriores. Una de las cosas que más interesantes me han parecido es que en cualquier miembro puedes averiguar qué tipos derivan de él, qué miembros devuelven el tipo seleccionado y cuáles lo usan bien como parámetro o como valor de retorno. Se pueden utilizar URLs directas para llegar a determinados tipos, lo cual es muy útil para referenciarlos en textos o mensajes a foros, por ejemplo.

Subclasificación de ventanas en .NET

¿Qué es la subclasificación? El sistema operativo Windows efectúa la comunicación entre los diversos objetos de la interfaz de usuario utilizando mensajes. Todo lo que ocurre en la interfaz requiere mensajes para ocurrir. Por ejemplo, cuando pulsas con el ratón sobre una ventana se envía un mensaje para indicar en dónde has pulsado y cómo. Si haces clic en el aspa de cerrar una ventana Windows envía un mensaje a ésta para que se cierre. Etc, etc... Otra cuestión a tener en cuenta en este contexto es que, en contra de lo que pueda parecer, muchos objetos aparte de las propias ventanas son también ventanas. Por ejemplo, un cuadro de texto, un botón o una rejilla son ventanas (sólo que de otros tipos) y por consiguiente reciben mensajes del sistema operativo para indicarles cómo deben comportarse. Cuando un proceso intercepta y (opcionalmente) modifica los mensajes que se envían a una ventana se dice que la ventana ha sido subclasificada. Pero, ¿para qué puede nos puede valer esto?. E... [Más]

Echaos a temblar: a partir de Octubre puedes ir a la carcel por hacer casi cualquier cosa en Internet :-)

A partir del 1 de Octubre de 2004, entra en vigor el nuevo Código Penal con el que se puede incurrir en penas de cárcel simplemente por descargar música en Internet. La nueva ley orgánica 15/2003, con la que se reforma de manera extensa el vigente Código Penal, incorpora una serie de medidas que deben hacer temblar a cualquier internauta habituado a los "usos" típicos de Internet hoy en día. Asimismo deben temblar aquellos padres que tienen a sus hijos navegando tranquilamente en la habitación, pues sin hacer nada "malo" podrían acabar llevándoles a la cárcel o al pago de una multa bastante cuantiosa. Desde el próximo 1 de Octubre de 2004, en España será delito penado con seis meses a dos años de cárcel y multa de 12 a 24 meses, bajarse una canción de Internet sin permisos del propietario de los derechos de autor (Art. 270, ap. 2). De igual modo se penaliza al que fabrique distribuya o simplemente tenga en su ordenador software capaz de suprimir o neutralizar herramientas de protec... [Más]

Mailinator: servicio de correo temporal

Hace unos meses me encontré con este interesante servicio y hoy, por cuestiones que no vienen al caso, me he acordado de él. Se trata de, Mailinator.net, un servicio de correo electrónico temporal y anónimo. ¿Qué quiere decir esto?. Lo mejor es que lo explique con un ejemplo... Imagínate el típico portal de Internet que tiene uno o dos archivos interesantes que te interesa bajarte pero que, para ello, debes registrarte antes en la página. Además sabes que a la hora de registrarte deberás proporcionar una dirección de correo válida puesto que te enviarán a ella una clave de acceso. El problema es que si realmente proporcionas una dirección tuya en el futuro te van a machacar con correo electrónico y no está el horno para bollos ¿verdad?. ¿No sería estupendo disponer de una cuenta que funcionase lo justo para que te escriban a ella y luego que te pudieras desentender de la misma? Pues esto precisamente es lo que hace Mailinator. Tú invéntate una cuenta cualquiera dentro del dominio mai... [Más]

Truco: Almacenamiento externo automático de cadenas de conexión

Cuando colocamos un objeto de conexión a un origen de datos sobre un formulario Windows Forms de Visual Studio .NET, éste aparece en la parte inferior del diseñador correspondiente y podemos editar sus propiedades desde la ventana de propiedades del entorno. La propiedad más importante de este objeto es, sin duda, ConnectionString. Normalmente la ajustamos desde la propia ventana de propiedades, y mucha gente la deja simplemente ahí, sin añadir forma alguna de modificarla de forma externa a la aplicación. Esto tiene varios problemas, pero los principales son: · Si queremos actualizar la cadena deberemos cambiar la propiedad desde el diseñador y recompilar la aplicación· Si alguien rastrea o descompila el código puede leer en claro la cadena (con contraseñas de acceso y otra información confidencial). Para evitar el primero de estos problemas es obvio que lo más sencillo es llevar esta cadena de conexion (entera o por partes) a algún archivo externo de configuración que leeremos de... [Más]

Vulnerabilidad en Mozilla y Firefox favorece el phishing

Se ha anunciado una vulnerabilidad en Mozilla y Firefox que permitiría a sitios web maliciosos falsificar el interfaz de usuario, lo que puede inducir al usuario a creer que se encuentra en un sitio diferente y ser empleado para realizar ataques de phishing (robo de información bancaria, cuentas de acceso, etc). El problema, que parece ser el mismo que el identificado como 244965 en Mozilla, reside en que estos productos no restringen a los sitios web la inclusión de archivos XUL remotos (XML User Interface Language) de tal manera que se puede "secuestrar" la mayor parte del interfaz, incluyendo la barra de herramientas, los diálogos de certificados SSL, barra de direcciones, etc. Esto es importante debido a que el interfaz de Mozilla está construida a base de archivos XUL. Hay que señalar que no se trata de un problema nuevo, ya que el mencionado bug fue mencionado por primera vez en 1999, pero fue marcado como confidencial durante 5 años, hasta que el pasado día 21 un desarrollador... [Más]

Registro automático de cambios en una tabla desconectada

Como es bien sabido la clase DataSet de .NET (dentro del espacio de nombres System.Data), permite utilizar de manera sencilla y potente un pequeño gestor de datos en memoria, sin necesidad de haber obtenido por fuerza los datos a partir de un gestor de datos convencional. El objeto DataSet puede haber sido creado dinámicamente por nosotros o se puede haber generado para trabajar en memoria con tablas y relaciones obtenidos de una fuente de datos relacional, por ejemplo. Un DataSet contiene, entre otras cosas, una colección de objetos DataTable que, como puede imaginar, son equivalentes conceptualmente a las tablas o relaciones en una base de datos relacional. No voy a entrar aquí a explicar todas las características de este tipo de objetos, pero sí me gustaría recordar que generan dos eventos con el fin de notificar de los cambios que sufren. Estos eventos son RowChanged y RowDeleted, y se lanzan cuando se cambia algún valor  o cuando se elimina una fila de la tabla respectivamente. ... [Más]

Cómo saltarse la protección de los cortafuegos por software

Me ha llamado poderosamente la atención este artículo del reciente número 62 de Phrack Magazine. En él se estudian los fundamentos del funcionamiento de los cortafuegos por software en el sistema operativo Windows. Después se ilustran dos métodos que un virus o programa mailintencionado podría emplear para comunicarse con el exterior de un sistema protegido, anulando el cortafuegos. Aunque no seas un programador de virus seguro que puedes aprender algo nuevo con él (te advierto es algo "espeso").