Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 37886|Respuesta: 4

[ASP.NET] MVC ajax con AntiForgeryToken para prevenir ataques CSRF

[Copiar enlace]
Publicado en 2/11/2017 10:06:29 | | | |
A menudo se observa que los datos de la publicación ajax en el servidor del proyecto no están marcados con etiquetas anti-falsificación, lo que provoca ataques CSRF, y es muy fácil añadir marcas anti-falsificación a Asp.net MVC añadiendo Html.AntiForgeryToken() al formulario.
Html.AntiForgeryToken() genera un par de cadenas cifradas que se almacenan en cookies y entradas. También traemos AntiForgeryToken en la publicación de ajax
Html.AntiForgeryToken() en MVC es una medida para prevenir ataques de falsificación de solicitudes entre sitios (CSRF: Cross-site request forgery), que es diferente de XSS (XSS también conocido como CSS: Cross-Site-Script); XSS generalmente utiliza usuarios de confianza en el sitio para insertar código malicioso de scripts en la red y atacar. CSRF, en cambio, es un usuario pseudo-confiable que ataca un sitio web.
Primero, veamos el código de la siguiente manera:

Al ejecutarse, el código html generado se ve así:



Vamos a hacer clic en el botón de prueba para solicitar una prueba y ver si tiene cookies antifalsificación, como se muestra en la figura de abajo:



El código en el controlador es el siguiente:

Necesitamos añadir la función ValidateAntiForgeryToken a cada controlador; si el usuario no lleva el AntiForgeryToken, podemos devolver una notificación amigable al usuario, de la siguiente manera:







Anterior:asp.net función de vinculación mvc BindAttribute
Próximo:Una de las comparaciones entre CMMI y Agile: la diferencia esencial entre ambos
 Propietario| Publicado en 2/11/2017 11:05:37 |
Para el método anterior, debes personalizar la función y no puedes usar la función predeterminada ValidateAntiForgeryToken

La función predeterminada es tomar el valor en la forma de formulario y luego juzgarlo



Encapsulé un método post con jQuery con validación anti-falsificación, y el código es el siguiente:



 Propietario| Publicado en 2/11/2017 11:17:36 |
IsAjaxRequest para determinar si es una solicitud ajax

Esencialmente, IsAjaxRequest() determina si hay un campo X-Requested-With en la cabecera y si es una XMLHttpRequest

Mirar la documentación es inútil, depende del código fuente.
 Propietario| Publicado en 20/2/2021 19:22:26 |
ASP.NET Ataque CSRF Encapsulación de peticiones Ajax
https://www.itsvse.com/thread-8077-1-1.html
Publicado en 9/12/2021 18:37:56 |
testtesttesttest
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com