Usein nähdään, että ajaxin palvelimelle lähetetty data projektissa ei ole merkitty väärentämisen estäjätunnisteilla, mikä aiheuttaa CSRF-hyökkäyksiä, ja on hyvin helppoa lisätä väärentämisen estäjämerkkejä Asp.net MVC:hen lisäämällä lomakkeeseen Html.AntiForgeryToken(). Html.AntiForgeryToken() generoi parin salattuja merkkijonoja, jotka tallennetaan evästeisiin ja syötteisiin. Tuomme myös AntiForgeryTokenin ajax-postaukseen
Html.AntiForgeryToken() MVC:ssä on toimenpide, jolla pyritään estämään poikkisivustoisten pyyntöväärennösten (CSRF: Cross-site request forgery) hyökkäyksiä, mikä eroaa XSS:stä (XSS tunnetaan myös nimellä CSS: Cross-Site-Script). XSS käyttää yleensä luotettuja käyttäjiä sivustolla syöttämään haitallista skriptikoodia verkkoon hyökkäystä varten. CSRF puolestaan on pseudoluotettu käyttäjä, joka hyökkää verkkosivustolle. Ensiksi tarkastellaan koodia seuraavasti:
Kun html-koodia ajetaan, generoitu html-koodi näyttää tältä:
Klikataan testipainiketta pyytääksemme testin ja katsotaan, onko siinä väärennöksiä estäviä keksejä, kuten alla olevassa kuvassa näkyy:
Ohjaimen koodi on seuraava:
Meidän täytyy lisätä ValidateAntiForgeryToken -ominaisuus jokaiseen ohjaimeen, ja jos käyttäjä ei tuo AntiForgeryTokenia, voimme palauttaa käyttäjälle ystävällisen kehotteen seuraavasti:
|