ASP.NET MVC - CSRF-aanval

Inhoudsopgave
Er is een type aanval waar we vatbaar voor zijn en dat we vaak over het hoofd zien, dit is de Vervalsing van aanvragen voor meerdere sites of CSRF, dit is verantwoordelijk voor het misleiden van onze applicatie om gegevens te ontvangen die niet afkomstig zijn van het domein waar het wordt gehost.
Dit type aanval is behoorlijk schadelijk omdat het ertoe leidt dat een gebruiker die is misleid om zijn authenticatie te gebruiken om gegevens in onze database in te voeren, stel je voor dat met een dergelijke aanval een administratieve gebruiker of misschien vals nieuws in onze nieuwssectie kan komen .
Zoals we hebben uitgelegd, bedriegt deze aanval onze applicatie om gegevens te ontvangen die niet van zichzelf komen, hiervoor maakt het gebruik van de manier waarop de protocollen werken zoals HTTP en zijn verschillende methoden, waardoor een aanvaller maak een formulier en wijs naar onze controller.
Laten we, om deze aanval te illustreren, kijken naar de volgende controller die kwetsbaar is voor dit type aanval:

Hier kunnen we zien hoe we de gegevens rechtstreeks uit ons formulier halen en dit is niet slecht, het enige probleem is dat we onze applicatie niet vertellen dat het zijn oorsprong moet valideren, hiermee kan een aanvaller een script als het volgende genereren:

VERGROTEN

Hier is duidelijk wat er gebeurt, bij het laden van deze pagina wordt het formulier verzonden dat naar een specifiek record in de database verwijst, dit formulier verwijst naar een geldige controller, dus als een geverifieerde gebruiker naar deze pagina wordt geleid, bevinden we ons waarschijnlijk in een beetje binden.
Hoe fatalistisch het ook mag zijn, deze aanval is te vermijden, hiervoor hoeven we alleen enkele validaties uit te voeren die garanderen dat de ontvangen gegevens uit onze applicatie komen, hiervoor kunnen we enkele van deze technieken gebruiken:
DomeinreferentieDit bestaat uit het verifiëren van welk domein het verzoek afkomstig is, hiermee garanderen we dat het alleen van het domein is waar onze applicatie wordt gehost, het enige probleem of nadeel is dat als we onze domeinapplicatie migreren, we de validatie mogelijk opnieuw moeten opbouwen voor het geval dat we hebben niet dynamisch gemaakt. Het is ook mogelijk om een ​​valse referentie te maken door gebruik te maken van applicatiekwetsbaarheden zoals: Adobe Flash.
Gegenereerde tokenMet deze optie doen we dat binnen onze vorm a token die uniek is per gebruiker, dus onze applicatie valideert bij het ontvangen van de formulieren dat het token hetzelfde is, op deze manier staat het toe dat de gegevens worden geaccepteerd of niet. Dit is de meest gebruikte optie omdat het zeer eenvoudig te implementeren is en weinig of geen nadelen heeft.
In het geval van het gegenereerde token ASP.NET MVC bevat enkele methoden die ons kunnen helpen, de belangrijkste is: @ Html.AntiForgeryToken () die de geheime sleutel genereert waarmee onze applicatie de formulieren kan valideren.
We zien dan dat er meer gebieden zijn dan we denken en waar we in onze applicaties voor moeten zorgen, dus we moeten onszelf informeren en bewust zijn van hoe aanvallen plaatsvinden om manieren te bedenken om ze te vermijden.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave