Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 37886|Risposta: 4

[ASP.NET] MVC Ajax con AntiForgeryToken per prevenire attacchi CSRF

[Copiato link]
Pubblicato su 02/11/2017 10:06:29 | | | |
Si osserva spesso che i dati del post ajax al server nel progetto non sono contrassegnati con tag anti-contraffazione, causando attacchi CSRF, ed è molto facile aggiungere marchi anti-contrafazione a Asp.net MVC aggiungendo Html.AntiForgeryToken() al modulo.
Html.AntiForgeryToken() genera una coppia di stringhe criptate che vengono memorizzate nei cookie e in input. Inseriamo anche AntiForgeryToken nel post AJAX
Html.AntiForgeryToken() in MVC è una misura per prevenire attacchi cross-site request forgery (CSRF: Cross-site request forgery), che differisce da XSS (XSS è noto anche come CSS: Cross-Site-Script); XSS generalmente utilizza utenti affidabili nel sito per inserire codice script malevolo nella rete per attaccare. CSRF, invece, è un utente pseudo-affidabile che attacca un sito web.
Per prima cosa, vediamo il codice come segue:

Durante l'esecuzione, il codice html generato appare così:



Clicchiamo sul pulsante test per richiedere un test e vedere se contiene cookie anti-contraffazione, come mostrato nella figura sottostante:



Il codice nel controller è il seguente:

Dobbiamo aggiungere la funzione ValidateAntiForgeryToken a ogni controller; se l'utente non porta l'AntiForgeryToken, possiamo restituire un prompt amichevole all'utente, come segue:







Precedente:asp.net funzione di binding BindAttribute mvc
Prossimo:Uno dei confronti tra CMMI e Agile: la differenza essenziale tra i due
 Padrone di casa| Pubblicato su 02/11/2017 11:05:37 |
Per il metodo sopra, devi personalizzare la funzione e non puoi usare la funzione predefinita ValidateAntiForgeryToken

La funzione predefinita è prendere il valore nella forma e poi giudicarlo



Ho incapsulato un metodo post con jQuery con la validazione anti-falsificazione, e il codice è il seguente:



 Padrone di casa| Pubblicato su 02/11/2017 11:17:36 |
IsAjaxRequest per determinare se si tratta di una richiesta ajax

In sostanza, IsAjaxRequest() determina se nell'intestazione c'è un campo X-Requested-With e se si tratta di una XMLHttpRequest

Guardare la documentazione è inutile, dipende dal codice sorgente.
 Padrone di casa| Pubblicato su 20/02/2021 19:22:26 |
ASP.NET attacco CSRF Incapsulamento delle richieste Ajax
https://www.itsvse.com/thread-8077-1-1.html
Pubblicato su 09/12/2021 18:37:56 |
testtesttesttesttest
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com