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: 45075|Respuesta: 7

[ASP.NET] ASP.NET Ataque CSRF Encapsulación de peticiones Ajax

[Copiar enlace]
Publicado el 2019-9-12 09:42:54 | | | |
¿Qué es CSRF?

CSRF (falsificación de peticiones entre sitios), también conocido como ataque de un clic/sesión riding, abreviatura china: CSRF/XSRF. CSRF (Cross Site Request Forgery) es un método de ataque a red que fue incluido entre los 20 principales riesgos de seguridad en Internet en 2007. Otros riesgos de seguridad, como la inyección de scripts SQL y los ataques a scripts de dominio entre sitios, se han hecho muy conocidos en los últimos años, y muchos sitios web se han protegido de ellos. Sin embargo, CSRF sigue siendo un concepto ajeno para la mayoría de la gente. Incluso el Gmail más famoso tuvo una vulnerabilidad CSRF a finales de 2007, que fue hackeada y causó enormes pérdidas a los usuarios de Gmail.

¿Qué puede hacer la CSRF?

Puedes entender ataques CSRF como este: un atacante ha robado tu identidad y enviado solicitudes maliciosas en tu nombre. CSRF puede hacer cosas como enviar correos electrónicos, enviar mensajes, robar tu cuenta o incluso comprar bienes y transferir moneda virtual en tu nombre...... Los problemas causados incluyen: filtraciones de privacidad personal y seguridad de la propiedad.

ASP.NET Marca antifalsificación MVC AntiForgeryToken

En ASP.NET MVC, los tokens de formulario y los tokens de cookie se generan automáticamente por defecto siempre que se use @Html.AntiForgeryToken() en la página de visualización. Sin embargo, si queremos lograr la recuperación manual en segundo plano, necesitamos usar la clase System.Web.Helpers.AntiForgery, y amigos interesados en ver el código fuente descubrirán que, de hecho, el método de llamada interna de @Html.AntiForgeryToken() es el mismo que el de la clase AntiFalsificación.

Se utiliza principalmente para obtener el formulario correspondiente y el token de cookie mediante dos métodos estáticos: AntiForgery.GetHtml() o AntiForgery.GetTokens (cadena viejaCookieToken, cadena out newCookieToken, cadena out formToken). Sin embargo, debe señalarse que una vez llamado al método GetHtml, el token de cookie correspondiente se generará automáticamente, y luego se devolverá directamente un fragmento de código HTML con el campo oculto del valor del token de formulario, y el valor devuelto estará en este formulario:

<nombre de entrada="__RequestVerificationToken" type="hidden" value="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

El nombre del campo oculto suele fijarse a "__RequestVerificationToken", y el valor es un token de seguridad cifrado. Este campo oculto suele colocarse en el formulario a enviar, y la entrega final se verifica contra el token de la cookie.

Si usas el método GetTokens, puedes obtener el formulario cifrado y el token de cookie tras introducir los parámetros correspondientes, pero aquí necesitas almacenar los valores correspondientes tú mismo.

A continuación, introduciremos el método de actualizar manualmente AntiForgeryToken, principalmente a través de AJAX.

Código de paquete:



Código de prueba:



Descubrimos que al enviar una solicitud ajax, __RequestVerificationToken parámetros se incluyen automáticamente, como se muestra en la figura siguiente:







Anterior:Tutorial de historial de comandos para Windows CMD View
Próximo:Meet Azure DevOps
 Propietario| Publicado el 25-9-2019 18:09:46 |
Publicado el 10-11-2019 15:06:37 |
¿No escribiste un plan de tratamiento de antecedentes? El procesamiento en segundo plano dentro del encabezado es diferente del procesamiento en segundo plano sin el encabezado
 Propietario| Publicado el 21-11-2019 10:38:40 |
Danqingcheng publicado el 10-11-2019 a las 15:06
¿No escribiste un plan de tratamiento de antecedentes? El procesamiento en segundo plano dentro del encabezado es diferente del procesamiento en segundo plano sin el encabezado

Hmm, necesito reescribir el filtro
 Propietario| Publicado el 20-2-2021 19:22:14 |
MVC ajax con AntiForgeryToken para prevenir ataques CSRF
https://www.itsvse.com/thread-4207-1-1.html
Publicado el 9-12-2021 18:41:29 |
testtesttesttesttesttesttest
 Propietario| Publicado el 17-4-2022 12:59:39 |
 Propietario| Publicado el 26-9-2024 15:57:52 |
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