Las aplicaciones web actuales son vulnerables a una variedad de amenazas a la seguridad. Por lo tanto, debe contar con estrategias para salvaguardar sus datos y proteger su aplicación contra ataques. Proteger su aplicación requiere un enfoque proactivo combinado con la implementación de las mejores prácticas recomendadas como se analiza en este artículo. Este artículo examina seis estrategias que puede adoptar para proteger sus aplicaciones web, aprovechando las protecciones disponibles en ASP.NET Core. Para utilizar los ejemplos de código ilustrativos proporcionados en este artículo, debe tener Visual Studio 2022 instalado en su sistema. Si aún no tiene una copia, puede descargar Visual Studio 2022 aquí. Cree un proyecto MVC de aplicación web ASP.NET Core en Visual Studio 2022. Para crear un proyecto de API web ASP.NET Core en Visual Studio 2022, siga los pasos descritos. abajo. Inicie el IDE de Visual Studio 2022. Haga clic en «Crear nuevo proyecto». En la ventana «Crear nuevo proyecto», seleccione «ASP.NET Core Web App (Modelo-Vista-Controlador)» de la lista de plantillas que se muestran. Haga clic en Siguiente. En la ventana «Configura tu nuevo proyecto», especifica el nombre y la ubicación del nuevo proyecto. Opcionalmente, marque la casilla de verificación «Colocar solución y proyecto en el mismo directorio», según sus preferencias. Haga clic en Siguiente. En la ventana «Información adicional» que se muestra a continuación, seleccione «.NET 8.0 (soporte a largo plazo)» como versión del marco y desmarque la casilla de verificación que dice «Usar controladores», ya que usaremos API mínimas en este proyecto. En otra parte de la ventana «Información adicional», deje el «Tipo de autenticación» configurado en «Ninguno» (el valor predeterminado) y asegúrese de que las casillas de verificación «Habilitar soporte de API abierta», «Configurar para HTTPS», «No usar el nivel superior» declaraciones” y “Habilitar Docker” permanecen sin marcar. No utilizaremos ninguna de esas funciones aquí. Haga clic en Crear. Usaremos este proyecto MVC de aplicación web ASP.NET Core para ilustrar el uso de las funciones de seguridad integradas de ASP.NET Core en las secciones siguientes. Aplicar HTTPS en ASP.NET CoreSSL, o Secure Sockets Layer, es un protocolo que facilita Comunicación segura entre clientes y servidores a través de una red al permitir que la comunicación esté cifrada. Puede imponer el uso de HTTPS para proteger su aplicación redirigiendo las solicitudes HTTP a HTTPS. El siguiente fragmento de código muestra cómo puede configurar la seguridad HTTPS para su aplicación en el archivo Program.cs. builder.Services.AddHttpsRedirection(options => { options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect; options.HttpsPort = 443; });Utilice HTTP Strict Transport Security en ASP.NET CoreHTTP Strict Transport Security, o HSTS, evita ataques de protocolo de degradación y cookies secuestro asegurándose de que el servidor web se comunique mediante una conexión HTTPS y bloqueando todas las conexiones HTTP inseguras. Tenga en cuenta que el motor de ejecución de ASP.NET Core agrega el middleware HSTS de forma predeterminada. El siguiente fragmento de código ilustra cómo podemos aprovechar este middleware para imponer esta restricción de seguridad. Services.AddHsts(options => { options.IncludeSubDomains = true; options.MaxAge = TimeSpan.FromDays(7); });Evitar ataques de falsificación de solicitudes entre sitios en ASP.NET Core Truco de ataques de falsificación de solicitudes entre sitios (CSRF) usuario para que realice actividades maliciosas mientras el usuario está conectado a una aplicación. Estos ataques se realizan más comúnmente engañando a los usuarios con correos electrónicos de phishing para atraerlos a sitios web maliciosos, donde utilizan los privilegios de un usuario autenticado para robar fondos de la cuenta bancaria de la víctima, por ejemplo, o realizar compras en línea utilizando la tarjeta de crédito de la víctima. proteja a los usuarios de su aplicación ASP.NET Core de ataques CSRF mediante el uso de tokens antifalsificación. Cuando incluye tokens antifalsificación en su aplicación, se envían dos valores diferentes al servidor con cada POST. Uno de los valores se envía como cookie del navegador y el otro se envía como datos del formulario. A menos que el servidor reciba ambos valores, se negará a permitir que la solicitud continúe. Para usar tokens antifalsificación en su aplicación ASP.NET Core, inclúyalos en el archivo Program.cs como se muestra en el fragmento de código que se proporciona a continuación.builder. Services.AddAntiforgery(options => { options.FormFieldName = «ThisIsAnAntiForgeryField»; options.HeaderName = «ThisIsAnAntiForgeryHeader»; options.Cookie.Name = «ThisIsAnAntiForgeryCookie»; });Evitar secuencias de comandos entre sitios en ASP.NET CoreSecuencias de comandos entre sitios (XSS) se refiere al acto de inyectar un script malicioso utilizando campos de entrada o formulario de una página web en su aplicación, con la intención de robar datos confidenciales, como credenciales de inicio de sesión o cookies. Cuando un atacante quiere lanzar un ataque XSS, a menudo envía un enlace malicioso a un usuario y luego intenta atraer a la persona para que haga clic en el enlace. Puede frustrar las secuencias de comandos entre sitios utilizando codificación URL, codificación HTML y expresiones regulares para validar y desinfectar las entradas. Prevenir la inyección de SQL en ASP.NET La inyección de CoreSQL es una preocupación de seguridad importante. La inyección SQL ocurre cuando un atacante inserta comandos SQL maliciosos dentro de sus consultas SQL creadas dinámicamente. Estos ataques son posibles gracias a vulnerabilidades de seguridad en las consultas de bases de datos, lo que expone información confidencial. Puede frustrar la inyección de SQL utilizando procedimientos almacenados y consultas parametrizadas en lugar de consultas SQL dinámicas, y validando la entrada del usuario para eliminar caracteres potencialmente maliciosos. Cree páginas de error personalizadas en ASP.NET Core. Si no implementa un código de manejo de errores adecuado en su aplicación, podría exponer sin darse cuenta información confidencial, como datos de configuración, nombres de tablas o incluso números de seguro social. Para evitar esto, puede implementar una página web de error personalizada en su aplicación para que cada vez que ocurra un error, la página personalizada muestre mensajes de error seguros en lugar de los mensajes de error potencialmente comprometedores que su aplicación podría generar. Además de la página web de error personalizada página, debe crear un filtro de excepción personalizado extendiendo la clase ExceptionFilterAttribute y anulando el método OnException. El siguiente fragmento de código muestra cómo redirigir la ruta a la página web de error personalizado cuando ocurre un error.var result = new RedirectToRouteResult( new RouteValueDictionary { {«controller», «Error»}, {«action», «MyCustomError»} } );Finalmente, escriba el siguiente fragmento de código en el archivo Program.cs para registrar el controlador de excepciones con la canalización de procesamiento de solicitudes. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler(«/Home/MyCustomError»); }La seguridad de las aplicaciones implica todo, desde garantizar configuraciones adecuadas hasta evitar que se expongan datos confidenciales. Las seis mejores prácticas descritas anteriormente son sólo un comienzo. Para evitar la exposición de datos confidenciales, debe utilizar no solo HTTPS sino también cifrar los datos en reposo y abstenerse de almacenar datos confidenciales sin cifrar en una base de datos o en cualquier lugar de la aplicación. También debe monitorear de forma rutinaria los registros de actividad generados por su solicitud. Examinar los registros puede brindarle información sobre la seguridad, el rendimiento y otros problemas de su aplicación. Copyright © 2024 IDG Communications, Inc.