Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 45075|Antwoord: 7

[ASP.NET] ASP.NET CSRF-aanval Ajax-verzoek om inkapseling

[Link kopiëren]
Geplaatst op 2019-9-12 09:42:54 | | | |
Wat is CSRF?

CSRF (Cross-site request forgery), ook bekend als one click attack/session riding, Chinese afkorting: CSRF/XSRF. CSRF (Cross Site Request Forgery) is een netwerkaanvalmethode die in 2007 werd genoemd als een van de top 20 beveiligingsrisico's op het internet. Andere beveiligingsrisico's, zoals SQL-scriptinjectie en cross-site domein scriptaanvallen, zijn de afgelopen jaren bekend geworden, en veel websites hebben zich daartegen verdedigd. CSRF is echter voor de meeste mensen nog steeds een vreemd concept. Zelfs de bekendste Gmail had eind 2007 een CSRF-kwetsbaarheid, die werd gehackt en enorme verliezen veroorzaakte voor Gmail-gebruikers.

Wat kan CSRF doen?

Je kunt CSRF-aanvallen als deze begrijpen: een aanvaller heeft je identiteit gestolen en kwaadaardige verzoeken op jouw naam gestuurd. CSRF kan bijvoorbeeld e-mails versturen, berichten sturen, je account stelen of zelfs goederen kopen en virtueel geld overmaken namens jou...... De veroorzaakte problemen zijn onder andere: persoonlijke privacy en de beveiliging van eigendommen.

ASP.NET MVC AntiForgeryToken anti-vervalsingsmerk

In ASP.NET MVC worden formuliertokens en cookietokens standaard automatisch gegenereerd wanneer @Html.AntiForgeryToken() wordt gebruikt op de weergavepagina. Als we echter handmatig ophalen op de achtergrond willen bereiken, moeten we de System.Web.Helpers.AntiForgery-klasse gebruiken, en vrienden die geïnteresseerd zijn in het bekijken van de broncode zullen merken dat de interne aanroepmethode van @Html.AntiForgeryToken() in feite hetzelfde is als die van de AntiForgery-klasse.

Het wordt voornamelijk gebruikt om het bijbehorende formulier en cookietoken te verkrijgen via twee statische methoden: AntiForgery.GetHtml() of AntiForgery.GetTokens(string oldCookieToken, out string newCookieToken, out string formToken). Het moet echter worden opgemerkt dat zodra de GetHtml-methode is aangeroepen, het bijbehorende cookietoken automatisch wordt gegenereerd, en vervolgens wordt een stuk HTML-code met het verborgen veld van de vorm tokenwaarde direct teruggegeven, en de geretourneerde waarde zal in deze vorm zijn:

<input name="__RequestVerificationToken" type="hidden" value="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

De naamsnaam van het verborgen veld wordt meestal vastgelegd op "__RequestVerificationToken", en de waarde is een versleuteld beveiligingstoken. Dit verborgen veld wordt meestal in het te dienen formulier geplaatst, en de uiteindelijke inzending wordt verifiërd met het cookietoken.

Als je de GetTokens-methode gebruikt, kun je het versleutelde formulier en cookietoken verkrijgen nadat je de bijbehorende parameters hebt doorgegeven, maar hier moet je de bijbehorende waarden zelf opslaan.

Vervolgens introduceren we de methode om AntiForgeryToken handmatig bij te werken, voornamelijk via AJAX.

Pakketcode:



Testcode:



We ontdekten dat bij het verzenden van een ajax-verzoek __RequestVerificationToken parameters automatisch worden opgenomen, zoals te zien is in de onderstaande figuur:







Vorig:Windows CMD View Historische Commandogeschiedenis Tutorial
Volgend:Meet Azure DevOps
 Huisbaas| Geplaatst op 25-9-2019 18:09:46 |
Geplaatst op 10-11-2019 15:06:37 |
Heb je geen achtergrondbehandelplan geschreven? De achtergrondverwerking binnen de header verschilt van de achtergrondverwerking zonder header
 Huisbaas| Geplaatst op 21-11-2019 10:38:40 |
Danqingcheng geplaatst op 2019-11-10 15:06
Heb je geen achtergrondbehandelplan geschreven? De achtergrondverwerking binnen de header verschilt van de achtergrondverwerking zonder header

Hmm, ik moet het filter herschrijven
 Huisbaas| Geplaatst op 20-2-2021 19:22:14 |
mvc ajax met AntiForgeryToken om CSRF-aanvallen te voorkomen
https://www.itsvse.com/thread-4207-1-1.html
Geplaatst op 9-12-2021 18:41:29 |
testtesttesttesttesttesttest
 Huisbaas| Geplaatst op 2022-4-17 12:59:39 |
 Huisbaas| Geplaatst op 26-9-2024 15:57:52 |
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com