ASP.NET MVC - CSRF Attack

Obsah
Existuje typ útoku, ke kterému jsme náchylní a který mnohokrát přehlížíme, toto je Padělání požadavků na různé stránky nebo CSRF, to je zodpovědné za oklamání naší aplikace, aby přijímala data, která nepocházejí z domény, kde je hostována.
Tento typ útoku je docela škodlivý, protože způsobuje, že uživatel, který byl podveden, používá své ověřování k zadávání dat do naší databáze, představte si, že s útokem tohoto typu se podaří zadat administrátorovi nebo možná falešné zprávy do naší sekce novinek .
Jak jsme vysvětlili, tento útok oklamává naši aplikaci, aby přijímala data, která nepocházejí sama od sebe, a využívá k tomu způsob, jakým protokoly fungují jako HTTP a jeho různé metody, takže útočník může vytvořte formulář a přejděte na náš správce.
Pro ilustraci tohoto útoku se podívejme na následující řadič, který je náchylný k tomuto typu útoku:

Zde vidíme, jak získáváme data přímo z našeho formuláře, a to není špatné. Jediným problémem je, že neříkáme naší aplikaci, že musí ověřit svůj původ, a díky tomu může útočník vygenerovat skript jako následující:

ZVĚTŠIT

Tady je jasné, co se stane, při načítání této stránky se odešle formulář, který ukazuje na konkrétní záznam v databázi, tento formulář ukazuje na platný řadič, takže pokud je na tuto stránku přesměrován ověřený uživatel, pravděpodobně jsme v trochu svazovat.
Navzdory tomu, jak fatální to může být, tomuto útoku se lze vyhnout, proto musíme provést pouze některá ověření, která zaručí, že přijatá data pocházejí z naší aplikace, k tomu můžeme použít některé z těchto technik:
Odkaz na doménuTo spočívá v ověření, ze které domény pochází požadavek, čímž zaručujeme, že je to pouze z domény, kde je naše aplikace hostována. Jediným problémem nebo nevýhodou je, že pokud migrujeme naši doménovou aplikaci, možná budeme muset znovu vytvořit validaci v případě jsme neudělali. Je také možné vytvořit falešný odkaz využitím výhod zranitelnosti aplikace, jako je Adobe flash.
Vygenerovaný tokenS touto možností děláme to, že v naší formě a žeton což je jedinečné pro každého uživatele, takže naše aplikace při přijímání formulářů ověřuje, že token je stejný, tímto způsobem umožňuje přijetí dat nebo ne. Toto je nejpoužívanější možnost, protože je velmi snadné ji implementovat a má malé nebo žádné nevýhody.
V případě vygenerovaného tokenu ASP.NET MVC obsahuje některé metody, které nám mohou pomoci, hlavní je @ Html.AntiForgeryToken () který generuje tajný klíč, pomocí kterého může naše aplikace ověřovat formuláře.
Vidíme tedy, že existuje více oblastí, než si myslíme, a o které se musíme v našich aplikacích starat, takže se musíme informovat a být si vědomi toho, jak k útokům dochází, abychom vymysleli způsoby, jak se jim vyhnout.
wave wave wave wave wave