Mostrando entradas con la etiqueta CSRF. Mostrar todas las entradas
Mostrando entradas con la etiqueta CSRF. Mostrar todas las entradas

martes, 10 de septiembre de 2019

Prevención de ataques de falsificación de solicitudes entre sitios (CSRF/XSRF) en formularios web asp.net

La técnica llamada falsificación de petición en sitios cruzados, proviene de su nombre en inglés Cross Site Request Forgery (CSRF o XSRF). Este ataque fuerza al navegador web de su víctima, validado en algún servicio (como por ejemplo correo o home banking) a enviar una petición a una aplicación web vulnerable.

Esta aplicación se encarga de realizar la acción elegida a través de la víctima, debido que la actividad maliciosa será procesada en nombre del usuario logueado. Al contrario de los ataques conocidos como Cross Site Scripting (su traducción sería ordenes en sitios cruzados – XSS) los cuales explotan la confianza del usuario para con un sitio particular; el Cross Site Request Forgery explota la confianza que un sitio web tiene en un usuario particular.

En el formulario web:

<%= System.Web.Helpers.AntiForgery.GetHtml() %>


Esto agregará un campo oculto y una cookie. Entonces, si completa algunos datos del formulario y los vuelve a publicar en el servidor, necesita una simple verificación:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
 AntiForgery.Validate();
}

AntiForgery.Validate(); lanza una excepción si falla la verificación anti XSFR.

The namespace is System.Web.Helpers in the Microsoft.AspNet.WebPages Nuget-Package.