Joven hacker sonriendo

Hackeamos su software

cero falsos positivos

Inteligencia experta + tecnología especializada

Liberar recursos

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la programación segura en ASPNET al liberar recursos. Las aplicaciones normalmente cuentan con un manejo de excepciones, es importante liberar la memoria utilizada para tratarlas mejorando su rendimiento.

Necesidad

Comprender conceptos de la codificación segura en ASP.Net.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. La aplicación esta construida en ASP.NET

Solución

Las excepciones pueden producirse prácticamente por cualquier línea de código. Es importante que al momento de desarrollar una aplicación Web, ésta cuente con un manejo de excepciones adecuado. Lo anteriormente mencionado se realiza para evitar los ataques que se aprovechan de éstas para obtener información confidencial o realizar otras acciones no deseadas.

Para realizar un manejo de excepciones de ASP.NET, normalmente se recurre a las sentencias try y catch. Se coloca el código que puede producir una excepción dentro de la sentencia try y el código a ejecutar cuando se presente en la sentencia catch. De esta manera es posible capturar las excepciones cuando éstas sucedan y tratarlas cuando se presenten.

Otro aspecto importante a la hora de desarrollar una aplicación Web es el consumo de recursos. Un bajo consumo de recursos ayuda a disminuir los tiempos de ejecución, mejorando el rendimiento y la experiencia del usuario final.

Para lograr un manejo de excepciones con un uso eficiente de recursos en ASP.NET se recurre a la sentencia finally. Al enviar un bloque de código a finally es posible limpiar todos los recursos localizados en una sentencia try [1]. La ventaja de la sentencia finally es que permite ser ejecutada cada vez que una excepción ocurre en el bloque try. Si se combinan estas dos sentencias, en conjunto con la sentencia catch, obtenemos una aplicación que maneja las excepciones de forma adecuada.

A continuación se presenta un ejemplo de manejo de excepciones en ASP.NET utilizando try , catch y finally :

  1. Importamos la librería System necesaria para el uso de las sentencias try , catch y finally:

    test.py
    1
    2
    3
    4
    5
    6
    7
    using System;
    using System.IO;
    
    public class EHClass
    {
       public static void Main ()
       {
    
  2. Colocamos el código que puede causar una excepción dentro del bloque try, en este caso se utilizará para la lectura de un archivo. Esto puede generar una excepción al intentar abrir un archivo no válido:

    1
    2
    3
    4
    5
    6
    7
          try
          {
             FileStream  objArchivo = null;
             ...
             objArchivo = File.OpenRead(rutaArchivo);
             ...
          }
    
  3. El bloque catch capturará la excepción y ejecutará el código definido por el usuario en caso de presentarse dicha excepción [2]. Como se muestra a continuación:

    1
    2
    3
    4
          catch(Exception excepcion)
          {
             ...
          }
    
  4. La liberación de algún recurso en una aplicación ASP.NET se debe realizar dentro de la cláusula finally. Ésto con el propósito de garantizar que si ocurre algún evento excepcional dentro de la cláusula try, el recurso reservado por la aplicación sea liberado. Como se aprecia en el siguiente código:

    1
    2
    3
    4
    5
    6
    7
          finally
          {
               objArchivo.Close();
               ...
          }
       }
    }
    



Haz un comentario

Estado de los servicios - Términos de Uso