ASP.NET MVC - CSRF uzbrukums

Satura rādītājs
Pastāv uzbrukuma veids, uz kuru mēs esam pakļauti un kuru daudzas reizes aizmirstam Vairāku vietņu pieprasījuma viltojums vai CSRF, tas ir atbildīgs par mūsu lietojumprogrammas maldināšanu saņemt datus, kas nav no domēna, kurā tā tiek mitināta.
Šāda veida uzbrukums ir diezgan kaitīgs, jo tas liek lietotājam, kurš ir maldināts, izmantot savu autentifikāciju, lai ievadītu datus mūsu datu bāzē, iedomājieties, ka ar šāda veida uzbrukumu mūsu ziņu sadaļā izdodas ievadīt administratīvo lietotāju vai varbūt nepatiesas ziņas .
Kā mēs paskaidrojām, šis uzbrukums maldina mūsu lietojumprogrammu saņemt datus, kas nenāk no sevis, jo tas izmanto veidu, kādā protokoli darbojas piemēram, HTTP un tās dažādās metodes, tādējādi uzbrucējs var izveidojiet veidlapu un norādiet uz mūsu kontrolieri.
Lai ilustrētu šo uzbrukumu, apskatīsim šādu kontrolieri, kas ir neaizsargāts pret šāda veida uzbrukumiem:

Šeit mēs varam redzēt, kā mēs iegūstam datus tieši no mūsu veidlapas, un tas nav slikti, vienīgā problēma ir tā, ka mēs nepasakām savai lietojumprogrammai, ka tai ir jāapstiprina tās izcelsme, ar to uzbrucējs var ģenerēt šādu skriptu:

PALIELINĀT

Šeit ir skaidrs, kas notiek, ielādējot šo lapu, tiek nosūtīta veidlapa, kas norāda uz konkrētu datu bāzes ierakstu, šī veidlapa norāda uz derīgu kontrolieri, tādēļ, ja autentificēts lietotājs tiek novirzīts uz šo lapu, mēs, iespējams, atrodamies mazliet saistošs.
Neskatoties uz to, cik tas var būt fatālistiski, no šī uzbrukuma var izvairīties, jo mums ir jāveic tikai dažas pārbaudes, kas garantē, ka saņemtie dati nāk no mūsu lietojumprogrammas, tāpēc mēs varam izmantot dažas no šīm metodēm:
Domēna atsauceTas nozīmē pārbaudīt, no kura domēna ir saņemts pieprasījums, un tādējādi mēs garantējam, ka tas ir tikai no domēna, kurā tiek mitināta mūsu lietojumprogramma. Vienīgā problēma vai trūkums ir tas, ka, migrējot savu domēna lietojumprogrammu, mums, iespējams, būs jāpārveido validācija. mēs neesam padarījuši dinamisku. Ir iespējams arī izdarīt nepatiesu atsauci, izmantojot lietojumprogrammu ievainojamības, piemēram, Adobe flash.
Ģenerēts marķierisIzmantojot šo iespēju, mēs darām to, ka mūsu formā a žetons kas ir unikāls katram lietotājam, tāpēc mūsu lietojumprogramma, saņemot veidlapas, apstiprina, ka marķieris ir vienāds, tādā veidā tas ļauj datus pieņemt vai nē. Šī ir visplašāk izmantotā iespēja, jo to ir ļoti viegli īstenot, un tai ir maz trūkumu.
Ģenerētā marķiera gadījumā ASP.NET MVC satur dažas metodes, kas var mums palīdzēt, galvenā ir @ Html.AntiForgeryToken () kas ģenerē slepeno atslēgu, ar kuras palīdzību mūsu lietojumprogramma var apstiprināt veidlapas.
Tad mēs redzam, ka ir vairāk jomu, nekā mēs domājam, un par kurām mums ir jārūpējas savos pieteikumos, tāpēc mums ir jāinformē sevi un jāapzinās, kā notiek uzbrukumi, lai izstrādātu veidus, kā no tiem izvairīties.
wave wave wave wave wave