lunes, junio 25, 2007

Manejo de errores en ASP.NET, periodico frontera

Este mensaje de error esta aparencienod actualmente al intentar cargar la poagina de error del periodico frontera:

Es demasiada informacion para el usuario del servicio, ademas de que gente sin mucho que hacer puede buscar como explotar algun bug del sitio, al cabo ya el mismo error presenta demasiada informacion que puede ser util.

Es posible manejar los errores en ASP.NET para que despliegen paginas mas amistosas para el comun de los moratles y que ademas no muestre informacion critica del sitio, una forma es con el atributo errorPage para indicarle a nuestra forma, que si encuentra algun problema despliegue la pagina de error que le indiquemos:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebTest.WebForm1" errorPage="/WebTest/ErrorPages/PageError.html"%>


Ora forma es configurado el manejo de errores de forma global en nuestra aplicacion, modificando el web.config para que luzca como:

(customErrors mode="On" defaultRedirect="/WebTest/ErrorPages/AppError.html")
(error statusCode="404" redirect="/WebTest/ErrorPages/404.html" /)
(/customErrors)
Nota: Cambie los <> por (), ya que si usaba los <> no se desplegaba el codigo.

Donde inclusive podemos indicar una pagina de error diferente para cada tipo de error que se produzca, si no existe una pagina especial, ASP.NET genera una generica, pero es posible indicarle que no muestre demasiada informacion, esto se logra cambiado el valor de mode a "On" o a "RemoteOnly", estoy seguro que el sitio del frontera lo tiene en "Off".

La diferencia entre los 3 modos es que:
  • On: Despliega una pagina de error generico si no se indica otra cosa, pero en lugar de mostrar detalles del error, indica como ver los detalles del mismo
  • Off: Siempre que se genere un error, si no se especifica una pagina de error, va a mostrar una pagina generica de error con todos lo detalles posible,. muy peligro si el sitio esta en Internet.
  • RemoteOnly: Muestra una pagina generica de error para los usuarios del sitio, pero el administrador/programadores que se conencten de forma local al servidor van a recibir una pagina con todo el detalle del error para investigarlo/corregirlo.

No hay comentarios.: