Dažnai pastebima, kad ajax įrašo duomenys į serverį projekte nėra pažymėti apsaugos nuo klastojimo žymomis, sukeliančiomis CSRF atakas, ir labai lengva pridėti apsaugos nuo klastojimo ženklus Asp.net MVC pridedant Html.AntiForgeryToken() prie formos. Html.AntiForgeryToken() sukuria porą užšifruotų eilučių, kurios saugomos slapukuose ir įvestyje. Mes taip pat pristatome AntiForgeryToken į ajax įrašą
Html.AntiForgeryToken() MVC yra priemonė, skirta užkirsti kelią kelių svetainių užklausų klastojimui (CSRF: Cross-site request forgery) atakoms, kuri skiriasi nuo XSS (XSS taip pat žinomas kaip CSS: Cross-Site-Script), XSS paprastai naudoja patikimus svetainės vartotojus, kad į tinklą įterptų kenkėjišką scenarijaus kodą, kad galėtų atakuoti. Kita vertus, CSRF yra pseudopatikimas vartotojas, atakuojantis svetainę. Pirmiausia peržiūrėkime kodą taip:
Vykdant sugeneruotas html kodas atrodo taip:
Spustelėkime bandymo mygtuką, kad užklaustumėte testą ir pažiūrėtume, ar jame yra apsaugos nuo klastojimo slapukų, kaip parodyta paveikslėlyje žemiau:
Valdiklio kodas yra toks:
Prie kiekvieno valdiklio turime pridėti "ValidateAntiForgeryToken" funkciją, jei vartotojas neatsineša "AntiForgeryToken", galime grąžinti vartotojui draugišką raginimą taip:
|