Často se stává, že data Ajaxu na serveru v projektu nejsou označena štítky proti padělání, což způsobuje útoky CSRF, a je velmi snadné přidat ochranné známky do Asp.net MVC přidáním Html.AntiForgeryToken() do formuláře. Html.AntiForgeryToken() generuje dvojici šifrovaných řetězců, které jsou uloženy v cookies a vstupu. V příspěvku o ajaxu také přinášíme AntiForgeryToken
Html.AntiForgeryToken() v MVC je opatření k prevenci útoků padělaných požadavků mezi místy (CSRF: Cross-site request forgery), což se liší od XSS (XSS je také známý jako CSS: Cross-Site-Script). XSS obecně využívá důvěryhodné uživatele na webu k vkládání škodlivého skriptového kódu do sítě k útoku. CSRF je naopak pseudodůvěryhodný uživatel, který útočí na webovou stránku. Nejprve se podívejme na kód následovně:
Při spuštění vypadá vygenerovaný html kód takto:
Klikněme na tlačítko test, abychom si vyžádali test a zjistili, zda obsahuje antipadělatelské cookies, jak je znázorněno na obrázku níže:
Kód v řadiči je následující:
Musíme přidat funkci ValidateAntiForgeryToken ke každému ovladači, pokud uživatel nepřinese AntiForgeryToken, můžeme mu vrátit přátelskou výzvu, a to následovně:
|