Custom Search

May 25, 2007

Creador de botones

Esta vez les hablaré de una pagina muy cool, se trata de un generador de botones. Para aquellos que son web developers y que derrepente necesitas un buen botón, pues esta herramienta te puede sacar de un apuro.

Se trata de: http://www.mycoolbutton.com


May 13, 2007

eol.org (Encyclopedia of Life)

eol.org (Enciclopedia de la vida) Es un site dedicado a recolectar información acerca de la vida en el planeta y ponerla disponible para todos, me parce un proyecto muy muy chido, aquí les dejo la descripción del site:

Comprehensive, collaborative, ever-growing, and personalized, the Encyclopedia of Life is an ecosystem of websites that makes all key information about life on Earth accessible to anyone, anywhere in the world. Our goal is to create a constantly evolving encyclopedia that lives on the Internet, with contributions from scientists and amateurs alike. To transform the science of biology, and inspire a new generation of scientists, by aggregating all known data about every living species. And ultimately, to increase our collective understanding of life on Earth, and safeguard the richest possible spectrum of biodiversity.


y como entrada un video promocional del site, se los recomiendo mucho!





La viejita y el mercedes

Esta es una buena razón para respetar a la gente de la tercera edad.!!


May 12, 2007

Si Leonardo hubiera tenido Paint

Si, así es, creo que le hubiése quedado igualita! ¿qué opinan?

May 11, 2007

Video

Ya lo había escuchado, está padre, aquí les dejo el video:

Blue Gene

Quiero uná de estas para mi casa :P

Fuente: http://www.eluniversal.com.mx/articulos/39930.html

Blue Gene, la computadora más rápida del mundo

A diferencia de su antecesora, Deep Blue, la cual tenía 32 procesadores para efectuar 200 millones de movimientos de ajedrez por segundo, ésta cuenta con 131 mil procesadores que le permiten efectuar 280 mil millones de operaciones por segundo
Blue Gene, la computadora más rápida del mundo
(Foto: Especial)

Notimex
El Universal

Viernes 11 de mayo de 2007

México .- A 10 años de que la computadora Deep Blue le ganara un torneo de ajedrez a un campeón mundial, Blue Gene, descendiente de la primera, se ha convertido en la supercomputadora más rápida del mundo.


A diferencia de su antecesora, la cual tenía 32 procesadores para efectuar 200 millones de movimientos de ajedrez por segundo, Blue Gene cuenta con 131 mil procesadores que le permiten efectuar 280 mil millones de operaciones por segundo.

Ante este esquema, se requeriría que un científico trabajara sin parar con una calculadora durante 177 mil años para efectuar todas las operaciones que hace Blue Gene en un segundo.

Una base de esta supercomputadora son las teorías en ciencias de computación promovidas por Deep Blue, ejecutando millones de cálculos simultáneos o "en paralelo" , y que son precursoras de los diseños de procesadores múltiples actuales.

Gracias a su capacidad, Blue Gene trabaja en el campo de la ciencia, con universidades y laboratorios gubernamentales, para investigar lo invisible y proporcionando nuevas perspectivas acerca de: ciencias de la vida, hidrodinámica, química cuántica, astronomía e investigación espacial.

Por otra parte, y de acuerdo con la green500.org, Blue Gene es la más eficiente computadora del mundo desde el punto de vista de consumo de energía, ya que fue diseñada para proporcionar el mayor desempeño por kilovatio de potencia consumida.

Los sistemas Blue Gene están clasificados en la primera y tercera posición, entre las supercomputadoras más rápidas del mundo, en la lista TOP500, y la supercomputadora más rápida está instalada en el Laboratorio Nacional Lawrence Livermore del Departamento de Energía.

Actualmente existen 15 instalaciones Blue Gene en Estados Unidos, además de que pueden hallarse más computadoras como esta en Suiza, Japón, Alemania, Holanda, Francia y el Reino Unido.

May 7, 2007

Estrategias para enseñar lenguajes de programación

En busca de nuevas estrategias para enseñar lenguajes de programación

Fuente: http://www.conocimientoenlinea.com/content/view/52/50/
Ingeniera Jakeline Marcos Abed
Profesora del Departamento de Ciencias Computacionales,
Tecnológico de Monterrey
jakeline@itesm.mxEsta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla

 

Ciencia

Las estrategias, técnicas y herramientas relacionadas con la enseñanza han evolucionado a lo largo del tiempo. En particular, enseñar lenguajes de programación siempre ha constituido un reto, debido a la naturaleza abstracta de dichos lenguajes y al desarrollo del pensamiento lógico en el estudiante.  

Cuando se trata de aprender un nuevo idioma, es necesario estudiar las reglas gramaticales, si es que después se quiere escribir correctamente en dicho idioma. De igual forma, para escribir un programa en lenguaje computacional, es necesario aprender primero las reglas gramaticales, desarrollando al mismo tiempo la lógica; es decir, la forma en la que se ha de solucionar el problema, para posteriormente generalizar una solución mediante la utilización de la computadora.   

De ahí que los estudiantes que estudian por primera vez un lenguaje de programación, se enfrentan con varios dilemas:

Comprender los conceptos nuevos.

Memorizar estrictas reglas de sintaxis.

Comprender el problema por solucionar  (a veces ni siquiera entienden el problema…).

Establecer los pasos que se han de seguir para solucionar el problema en cuestión.

Para superar este tipo de barreras, y gracias a los avances en el área de tecnología, se han desarrollado herramientas gráficas muy amigables, que facilitan la introducción al maravilloso mundo de la programación.

Una de estas herramientas se llama Alice ©, creada por la Universidad de Carnegie Mellon, y utilizada exitosamente en el Tec de Monterrey, en los cursos base de programación.    

APRENDIZAJE DE LA "JERGA" MEDIANTE LA UTILIZACIÓN
DE MUNDOS VIRTUALES

Al iniciar un curso de programación, puede existir en el profesor la duda de por dónde empezar.

Algunos cursos empiezan por el manejo de variables y tipos de datos; otros, con el manejo de algoritmos en la solución de problemas, mientras que otros empiezan por conceptos de clases y objetos.

Esto ha dado pie a diferentes discusiones e investigaciones, que no serán tratadas en este momento, ya que sería como hablar de política o religión.

Sin embargo, una cosa es cierta: hacer un curso de programación con altas dosis de teoría hace que el estudiante pierda interés en la clase, y al no existir interés, no existe motivación por aprender.

Y es aquí donde Alice entra en acción: Alice agrega un factor de motivación en el alumno.

Al haber más motivación en la clase, se incrementa el deseo por aprender, y entre más se comprende algo, menos se tiene que memorizar, y como se entiende más, gusta más, haciendo de esto un círculo virtuoso.
Alice es una herramienta gráfica que permite la creación de mundos virtuales. En este ambiente de edición de escenarios, es posible recrear pequeñas historias con actores de tipo caricatura, que van desde animalitos del bosque hasta personajes del viejo oeste, o criaturas propias de videojuegos.

SECUENCIA DE ACCIONES
Entonces, el estudiante crea una historia, escoge los actores, escoge el escenario y arma la trama, para lo cual diseña una secuencia de acciones que resolverán un pequeño problema. Es en este momento cuando el estudiante empieza a estructurar sus ideas, y da orden y secuencia a las acciones de los objetos involucrados.

Tomando como ejemplo la imagen mostrada abajo, si el sheriff quiere llegar al caballo, tiene que caminar hacia él. Pero la acción de caminar está compuesta por: subir la pierna derecha, bajar la pierna derecha, subir la pierna izquierda, bajar la pierna izquierda, avanzando medio metro en cada paso. ¿Cuántas veces va a hacer esto? No sabemos. El sheriff entrará en un proceso repetitivo, ya que caminará mientras se encuentre lejos del caballo.
De esta forma, Alice permite un aprendizaje activo que se puede asociar con la realidad, incorporando conceptos de programación, tales como uso de condiciones y repeticiones, o de programación orientada a objetos, como uso y creación de métodos, propiedades de un objeto, abstracción y herencia,  o incluso manejo de eventos.

Todo esto con la facilidad de "arrastrar y soltar", sin necesidad de aprender la gramática de ningún lenguaje computacional.

Ciencia ENTENDIDOS LOS CONCEPTOS,
VAMOS AHORA POR EL LENGUAJE

Una vez que el estudiante se ha familiarizado con los conceptos principales de programación, en un ambiente controlado como Alice,  es momento de migrar hacia un lenguaje de programación orientada a objetos, siempre con el apoyo de los conceptos aprendidos previamente.

De esta forma, llevaremos a los alumnos a un segundo nivel, en donde al explicar los estatutos propios del lenguaje de programación, todos estaremos utilizando el mismo vocabulario. Siguiendo con el ejemplo del Sheriff y el caballo, ahora podemos hablar de tipos de datos dentro de una clase específica: la clase Sheriff. Sabemos que la edad del Sheriff puede ser representada por un entero; la estatura, por un valor con decimales, y el nombre, por una cadena de caracteres.

Además, podemos hablar de acciones o métodos definidos para la clase Sheriff,  y podemos darnos cuenta que serán diferentes de los métodos o acciones definidos para la clase Caballo.

Una vez aprendidos los conceptos y el lenguaje, y habiendo ya trabajado en la solución de pequeños problemas, ahora sí nos dedicaremos por completo a la lógica de programación para resolver problemas más complejos.

Este tercer nivel es el que tiene mayor importancia dentro del curso, pero es difícil llegar a él si no se han comprendido bien los conceptos y las reglas de las primeras dos fases.
También en este sentido Alice nos ayudará, ya que el manejo de estatutos de control es incorporado desde los primeros ejemplos del curso.

CONCLUSIONES
Aunque herramientas como Alice no garantizan el aprendizaje de los lenguajes de programación, sí motivan y ayudan al estudiante a comprender conceptos que de otra forma serían más difíciles de entender.

Así, si consideramos el desarrollo de aplicaciones complejas, utilizando lenguajes de programación orientada a objetos, como una competencia eje de las carreras de tecnología, debemos privilegiar el fortalecimiento de las habilidades del pensamiento a través de la práctica continua e incremental, utilizando actividades creativas y retos interesantes de programación, dejando tiempo suficiente para pensar.

Santander Serfin

Vaya vaya,

Resulta ser que hace días pretendiendo entrar a la pagina de Santander Serfin, me encontré con una pagina que solicitaba
que actualizara mi user y pwd, lo cual se me hizo un tanto sospechoso, por lo que no lo hice y cerré la ventana, además
de andar corto de tiempo.

Bueno pues el día de hoy que vuelvo entrar, resulta que ya no hay pagina de cambio de pwd, y me topo con este anuncio:
así es que a tener cuidado!!

Bueno, lo que realmente me preocupaba es que entrasen a liquidar las deudas que tengo con serfín porque pues
ahorros nada!





Aviso Importante

Estimado cliente, Banco Santander NUNCA envía a sus usuarios o clientes correos electrónicos con ligas para solicitarle que ingrese y actualice información confidencial como: nips, contraseñas, códigos de cliente, números de cuentas de cheques, etc.

Si ha recibido un correo electrónico solicitando este tipo de información, no ingrese a la liga que se le solicita, ni entregue ningún dato y repórtelo de inmediato a través de este email: monitoreoph@santander.com.mx;o bien, a los teléfonos que abajo se detallan.

¿Cómo reconocer un email fraudulento?

Por seguridad, recomendamos no realizar operaciones bancarias en computadoras públicas (cafés internet, centros de negocios de hoteles y aerolíneas, etc), ya que ello puede poner en riesgo la confidencialidad de información como números de usuarios y contraseñas.

Santander recomienda utilizar exclusivamente computadoras de uso privado que adicionalmente cuenten con software antivirus y antispyware actualizado, ya que es la manera segura de realizar operaciones por Internet.

Para personas físicas, Superlínea
en la Ciudad de México al 51694300 y desde el interior de la República 01800 50 10000.

Para empresas, Superlínea Empresarial
en la Ciudad de México al 51694343 y desde el interior de la Republica 01800 5095000.




May 6, 2007

Ubuntu 7.04

Bueno pues recientemente liberaron la versión 7.04 de Ubuntu. Y me di a la tarea de probarlo, realmente lo voy a cambiar por el madrake 10 que ya tenia instalado.

Hasta donde he visto tiene mejores gráficas y el hardware lo reconocio casi totalmente. La distribución de menú y elementos se me hace muy chido además que existen muchas monerias que se le puede agregar.

En fin, la recomentación es bajenlo y pruebenlo ustedes mismos. Bajas el ISO, lo quemas y lo corres, si, lo corres, puesto que el CD es un Live CD, es decir, es un CD booteable y no necesitas instalar todo el SO para correrlo. Obviamente corre más lento que si lo instalases, pero la respuesta es muuy buena desde el CD.

Echale un ojo a los screenshots. y para bajarlo solo da click aquí.

Ya iré publicando lo que vaya encontrando más interesante

Hasta ya!

Update: May 06, 2007 11:50PM
Pues ya quedó instalado en el HD, hardware reconocido completamente, y todo jalando muy bien
aquí va un screenshot:



Sinceramente me ha gustado mucho hasta ahorita, puesto que es poco lo que he visto, en fin ya iremos viendo!

May 2, 2007

Editorial: Conocimiento En Linea

Fuente: http://www.conocimientoenlinea.com/content/view/39/37/


Editorial
PDF

Enseñar a pensar

Los idiomas fundamentales de la educación incluyen: las matemáticas y el método científico, la capacidad de leer y escribir bien, y la habilidad para la búsqueda de información a través de los medios electrónicos, a los cuales debemos agregar la internacionalización del conocimiento, enseñan-do a nuestros estudiantes un idioma extranjero.

A pesar de que lo anterior es aceptado por educadores, el arte de pensar, que se refleja en el arte de saber contar y deducir, es parte del método científico, y sólo se logra con la enseñanza de las matemáticas, tema que no ha sido tratado adecuadamente en nuestro sistema educativo nacional.

Lo aquí descrito se ratifica con lo señalado en el estudio realizado por la OCDE y el Banco Mundial, que mostró que en México sólo el .4 por ciento de los estudiantes tienen altas capacidades matemáticas, comparado con el 30 a 35 por ciento de los países nórdicos y de algunos orientales.

Esta tragedia de la educación nacional lleva implícita la ausencia de pensamiento científico y de respeto al alto valor de la ciencia como generadora del conocimiento, que debe ser inculcada a los alumnos desde los primeros años de la educación básica.

En Nuevo León existen programas y esfuerzos de educación para la ciencia, y de ciencia en familia, y hay organismos nacionales e internacionales que han coligado sus actividades con nosotros para asesorarnos en esta materia. Sin embargo, la falta de recursos ha impedido que se generalice este procedimiento, indispensable en el mundo contemporáneo para permitir a nuestros estudiantes ingresar a la globalización y a la competitividad que caracteriza esta época.

En esta edición, y por sugerencia de múltiples investigadores educativos, se abren nuevos horizontes en el tema de educación para la ciencia y se insiste, con casuística y experiencias previas, en la necesidad de recordar que las matemáticas y la ciencia son hermanas del arte de pensar, pues si un alumno no sabe pensar y a esto se le agrega que no sabe leer bien, difícilmente podrá aprender. De ahí la preocupación de los actores participantes en este volumen.

Esta realidad compartida de la magra educación para la ciencia, se acentúa cuando observamos el poco interés del ámbito político en la investigación científica, pues México dedica sólo el .34 por ciento del PIB a la misma y eso limita mucho nuestro desarrollo y dificulta crear una cultura científica comunitaria y una adecuada educación para la ciencia.

Estos desaciertos son producto de que olvidamos que el único factor fundamental que transforma el medio ambiente es el de la ciencia; de allí nuestra responsabilidad.

Top 10 Application Security Vulnerabilities in Web.config Files - Part One

A la hora de hacer nuestras aplicaciones web comúnmente nos dejamos llevar y usamos las mismas configuraciones
al llevar nuestra aplicación a producción. En esta ocasión Bryan Sullivan nos habla de 10 puntos importantes
que no debemos olvidar al momento de poner en producción.

Fuente: http://www.codeproject.com/useritems/web-based-applications.asp

Ahora a ponerlas en práctica!! :D
 

Top 10 Application Security Vulnerabilities in Web.config Files - Part One
By Bryan_Sullivan.



In part one of this two part article, you will learn about five of the top ten "worst offenders" of misconfigurations of application security that can cause overall problems for ASP.NET Web-based applications. Learn more about how to secure the Web.config files of an ASP.NET application.

These days, the biggest threat to an organization's network security comes from its public Web site and the Web-based applications found there. Unlike internal-only network services such as databases-which can be sealed off from the outside via firewalls-a public Web site is generally accessible to anyone who wants to view it, making application security an issue. As networks have become more secure, vulnerabilities in Web applications have inevitably attracted the attention of hackers, both criminal and recreational, who have devised techniques to exploit these holes. In fact, attacks upon the Web application layer now exceed those conducted at the network level, and can have consequences which are just as damaging.

Some enlightened software architects and developers are becoming educated on these threats to application security and are designing their Web-based applications with security in mind. By "baking in" application security from the start of the development process, rather than trying to "brush it on" at the end, you are much more likely to create secure applications that will withstand hackers' attacks. However, even the most meticulous and security-aware C# or VB.NET code can still be vulnerable to attack if you neglect to secure the Web.config configuration files of your application. Incorrectly configured Web-based applications can be just as dangerous as those that have been incorrectly coded. To make matters worse, many configuration settings actually default to insecure values.

This article lists five of the "worst offenders" of misconfigurations of application security that are universally problematic for all ASP.NET Web-based applications. Part two of this article will list an additional five misconfigurations that are specifically applicable to ASP.NET sites that use Web Forms authentication. So without further ado, let's get started!

1. Custom Errors Disabled


When you disable custom errors as shown below, ASP.NET provides a detailed error message to clients by default.

Vulnerable configuration:

<configuration>

<system.web>

<customErrors mode="Off">

Secure configuration:

<configuration>

<system.web>

<customErrors mode="RemoteOnly">

In itself, knowing the source of an error may not seem like a risk to application security, but consider this: the more information a hacker can gather about a Web site, the more likely it is that he will be able to successfully attack it. An error message can be a gold mine of information to an attacker. A default ASP.NET error message lists the specific versions of ASP.NET and the .NET framework which are being used by the Web server, as well as the type of exception that was thrown. Just knowing which Web-based applications are used (in this case ASP.NET) compromises application security by telling the attacker that the server is running a relatively recent version of Microsoft Windows and that Microsoft Internet Information Server (IIS) 6.0 or later is being used as the Web server. The type of exception thrown may also help the attacker to profile Web-based applications; for example, if a "SqlException" is thrown, then the attacker knows that the application is using some version of Microsoft SQL Server.

You can build up application security to prevent such information leakage by modifying the mode attribute of the <customErrors> element to "On" or "RemoteOnly." This setting instructs Web-based applications to display a nondescript, generic error message when an unhandled exception is generated. Another way to circumvent this application security issue is to redirect the user to a new page when errors occur by setting the "defaultRedirect" attribute of the <customErrors> element. This approach can provide even better application security because the default generic error page still gives away too much information about the system (namely, that it's using a Web.config file, which reveals that the server is running ASP.NET).

2. Leaving Tracing Enabled in Web-Based Applications


The trace feature of ASP.NET is one of the most useful tools that you can use to ensure application security by debugging and profiling your Web-based applications. Unfortunately, it is also one of the most useful tools that a hacker can use to attack your Web-based applications if it is left enabled in a production environment.

Vulnerable configuration:

<configuration>

<system.web>

<trace enabled="true" localOnly="false">

Secure configuration:

<configuration>

<system.web>

<trace enabled="false" localOnly="true">

When the <trace> element is enabled for remote users of Web-based applications (localOnly="false"), any user can view an incredibly detailed list of recent requests to the application simply by browsing to the page "trace.axd." If a detailed exception message is like a gold mine to a hacker looking to circumvent application security, a trace log is like Fort Knox! A trace log presents a wealth of information: the .NET and ASP.NET versions that the server is running; a complete trace of all the page methods that the request caused, including their times of execution; the session state and application state keys; the request and response cookies; the complete set of request headers, form variables, and QueryString variables; and finally the complete set of server variables.

A hacker looking for a way around application security would obviously find the form variable histories useful because these might include email addresses that could be harvested and sold to spammers, IDs and passwords that could be used to impersonate the user, or credit card and bank account numbers. Even the most innocent-looking piece of data in the trace collection can be dangerous in the wrong hands. For example, the "APPL_PHYSICAL_PATH" server variable, which contains the physical path of Web-based applications on the server, could help an attacker perform directory traversal attacks against the system.

The best way to prevent a hacker from obtaining trace data from Web-based applications is to disable the trace viewer completely by setting the "enabled" attribute of the <trace> element to "false." If you have to have the trace viewer enabled, either to debug or to profile your application, then be sure to set the "localOnly" attribute of the <trace> element to "true." That allows users to access the trace viewer only from the Web server and disables viewing it from any remote machine, increasing your application security.

3. Debugging Enabled


Deploying Web-based applications in debug mode is a very common mistake. Virtually all Web-based applications require some debugging. Visual Studio 2005 will even automatically modify the Web.config file to allow debugging when you start to debug your application. And, since deploying ASP.NET applications is as simple as copying the files from the development folder into the deployment folder, it's easy to see how development configuration settings can accidentally make it into production, compromising application security.

Vulnerable configuration:

<configuration>

<system.web>

<compilation debug="true">

Secure configuration:

<configuration>

<system.web>

<compilation debug="false">

Like the first two application security vulnerabilities described in this list, leaving debugging enabled is dangerous because you are providing inside information to end users who shouldn't have access to it, and who may use it to attack your Web-based applications. For example, if you have enabled debugging and disabled custom errors in your application, then any error message displayed to an end user of your Web-based applications will include not only the server information, a detailed exception message, and a stack trace, but also the actual source code of the page where the error occurred.

Unfortunately, this configuration setting isn't the only way that source code might be displayed to the user. Here's a story that illustrates why developers shouldn't concentrate solely on one type of configuration setting to improve application security. In early versions of Microsoft's ASP.NET AJAX framework, some controls would return a stack trace with source code to the client browser whenever exceptions occurred. This behavior happened whenever debugging was enabled, regardless of the custom error setting in the configuration. So, even if you properly configured your Web-based applications to display non-descriptive messages when errors occurred, you could still have unexpectedly revealed your source code to your end users if you forgot to disable debugging.

To disable debugging, set the value of the "debug" attribute of the <compilation> element to "false." This is the default value of the setting, but as we will see in part two of this article, it's safer to explicitly set the desired value rather than relying on the defaults to protect application security.

4. Cookies Accessible through Client-Side Script


In Internet Explorer 6.0, Microsoft introduced a new cookie property called "HttpOnly." While you can set the property programmatically on a per-cookie basis, you also can set it globally in the site configuration.

Vulnerable configuration:

<configuration>

<system.web>

<httpCookies httpOnlyCookies="false">

Secure configuration:

<configuration>

<system.web>

<httpCookies httpOnlyCookies="true">

Any cookie marked with this property will be accessible only from server-side code, and not to any client-side scripting code like JavaScript or VBScript. This shielding of cookies from the client helps to protect Web-based applications from Cross-Site Scripting attacks. A hacker initiates a Cross-Site Scripting (also called CSS or XSS) attack by attempting to insert his own script code into the Web page to get around any application security in place. Any page that accepts input from a user and echoes that input back is potentially vulnerable. For example, a login page that prompts for a user name and password and then displays "Welcome back, <username>" on a successful login may be susceptible to an XSS attack.

Message boards, forums, and wikis are also often vulnerable to application security issues. In these sites, legitimate users post their thoughts or opinions, which are then visible to all other visitors to the site. But an attacker, rather than posting about the current topic, will instead post a message such as "<script>alert(document.cookie);</script>". The message board now includes the attacker's script code in its page code-and the browser then interprets and executes it for future site visitors. Usually attackers use such script code to try to obtain the user's authentication token (usually stored in a cookie), which they could then use to impersonate the user. When cookies are marked with the "HttpOnly" property, their values are hidden from the client, so this attack will fail.

As mentioned earlier, it is possible to enable "HttpOnly" programmatically on any individual cookie by setting the "HttpOnly" property of the "HttpCookie" object to "true." However, it is easier and more reliable to configure the application to automatically enable "HttpOnly" for all cookies. To do this, set the "httpOnlyCookies" attribute of the <httpCookies> element to "true."

5. Cookieless Session State Enabled


In the initial 1.0 release of ASP.NET, you had no choice about how to transmit the session token between requests when your Web application needed to maintain session state: it was always stored in a cookie. Unfortunately, this meant that users who would not accept cookies could not use your application. So, in ASP.NET 1.1, Microsoft added support for cookieless session tokens via use of the "cookieless" setting.

Vulnerable configuration:

<configuration>

<system.web>

<sessionState cookieless="UseUri">

Secure configuration:

<configuration>

<system.web>

<sessionState cookieless="UseCookies">

Web applications configured to use cookieless session state now stored the session token in the page URLs rather than a cookie. For example, the page URL might change from http://myserver/MyApplication/default.aspx to http://myserver/MyApplication/(123456789ABCDEFG)/default.aspx. In this case, "123456789ABCDEFG" represents the current user's session token. A different user browsing the site at the same time would receive a completely different session token, resulting in a different URL, such as http://myserver/MyApplication/(ZYXWVU987654321)/default.aspx.

While adding support for cookieless session state did improve the usability of ASP.NET Web applications for users who would not accept cookies, it also had the side effect of making those applications much more vulnerable to session hijacking attacks. Session hijacking is basically a form of identity theft wherein a hacker impersonates a legitimate user by stealing his session token. When the session token is transmitted in a cookie, and the request is made on a secure channel (that is, it uses SSL), the token is secure. However, when the session token is included as part of the URL, it is much easier for a hacker to find and steal it. By using a network monitoring tool (also known as a "sniffer") or by obtaining a recent request log, hijacking the user's session becomes a simple matter of browsing to the URL containing the stolen unique session token. The Web application has no way of knowing that this new request with session token "123456789ABCDEFG" is not coming from the original, legitimate user. It happily loads the corresponding session state and returns the response back to the hacker, who has now effectively impersonated the user.

The most effective way to prevent these session hijacking attacks is to force your Web application to use cookies to store the session token. This is accomplished by setting the "cookieless" attribute of the <sessionState> element to "UseCookies" or "false." But what about the users who do not accept cookies? Do you have to choose between making your application available to all users versus ensuring that it operates securely for all users? A compromise between the two is possible in ASP.NET 2.0. By setting the "cookieless" attribute to "AutoDetect," the application will store the session token in a cookie for users who accept them and in the URL for those who won't. This means that only the users who use cookieless tokens will still be vulnerable to session hijacking. That's often acceptable, given the alternative-that users who deny cookies wouldn't be able to use the application at all. It is ironic that many users disable cookies because of privacy concerns when doing so can actually make them more prone to attack.

Intermission

These first five Web.config vulnerabilities that we've discussed in this article have been applicable to all ASP.NET Web applications regardless of their methods of authentication, or even whether they use authentication at all. Part two of this article details an additional five vulnerabilities that apply only to applications using Forms authentication. These misconfigurations can be even more dangerous than the first five, giving intruders the ability to access supposedly secure areas of your Web site. Finally, we will also discuss some methods of locking down your configuration files so that they can't be modified unintentionally.

Fin de semana

Este fin de semana la pasamos en Tampico, y hoy solo para agradecerle a Eydar, Jara, La China, Pepe y obviamente a Juanita(amorcito te amo) por lo bien que la pasamos.

El tour fue sábado 6:00AM viaje, 3:30PM Comida en la Palma(al otro lado del rio) se come riquísimo, buena vista, barato(6 personas = 430 pesos, chela incluida), 5:00PM playa, 11:00PM Life, sin comentarios :S.

Dominguito levantarse un poco tarde, tacos del Tío Cono(cochinita pibil), 3:00PM Playa de nuevo, 7PM regreso a MTY.

Aquí las fotos: