Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 37886|Atsakyti: 4

[ASP.NET] mvc ajax su AntiForgeryToken, kad būtų išvengta CSRF atakų

[Kopijuoti nuorodą]
Paskelbta 2017-11-02 10:06:29 | | | |
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:







Ankstesnis:asp.net mvc BindAttribute susiejimo funkcija
Kitą:Vienas iš CMMI ir Agile palyginimų: esminis skirtumas tarp jų
 Savininkas| Paskelbta 2017-11-02 11:05:37 |
Norėdami naudoti aukščiau pateiktą metodą, turite tinkinti funkciją ir negalite naudoti numatytosios ValidateAntiForgeryToken funkcijos

Numatytoji funkcija yra paimti reikšmę formos formoje ir tada ją įvertinti



Aš inkapsuliuotas po metodas su jQuery su apsaugos nuo klastojimo patvirtinimas, ir kodas yra toks:



 Savininkas| Paskelbta 2017-11-02 11:17:36 |
IsAjaxRequest nustatyti, ar tai yra Ajax prašymas

Iš esmės IsAjaxRequest() nustato, ar antraštėje yra laukas X-Requested-With ir ar tai yra XMLHttpRequest

Žiūrėti į dokumentaciją nenaudinga, tai priklauso nuo šaltinio kodo.
 Savininkas| Paskelbta 2021-02-20 19:22:26 |
ASP.NET CSRF ataka Ajax užklausos inkapsuliavimas
https://www.itsvse.com/thread-8077-1-1.html
Paskelbta 2021-12-09 18:37:56 |
testtesttestas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com