Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 45075|Jawab: 7

[ASP.NET] ASP.NET CSRF menyerang enkapsulasi permintaan Ajax

[Salin tautan]
Dipaparkan pada 2019-9-12 09:42:54 | | | |
Apa itu CSRF?

CSRF (Pemalsuan permintaan lintas situs), juga dikenal sebagai serangan/sesi sesi satu klik, singkatan Cina: CSRF/XSRF. CSRF (Cross Site Request Forgery) adalah metode serangan jaringan yang terdaftar sebagai salah satu dari 20 risiko keamanan teratas di Internet pada tahun 2007. Risiko keamanan lainnya, seperti injeksi skrip SQL dan serangan skrip domain lintas situs, telah menjadi terkenal dalam beberapa tahun terakhir, dan banyak situs web telah membela diri terhadapnya. Namun, CSRF masih merupakan konsep asing bagi kebanyakan orang. Bahkan Gmail yang paling terkenal memiliki kerentanan CSRF pada akhir 2007, yang diretas dan menyebabkan kerugian besar bagi pengguna Gmail.

Apa yang bisa dilakukan CSRF?

Anda dapat memahami serangan CSRF seperti ini: penyerang telah mencuri identitas Anda dan mengirim permintaan berbahaya atas nama Anda. CSRF dapat melakukan hal-hal seperti mengirim email, mengirim pesan, mencuri akun Anda, atau bahkan membeli barang dan mentransfer mata uang virtual atas nama Anda...... Masalah yang ditimbulkan antara lain: kebocoran privasi pribadi dan keamanan properti.

ASP.NET MVC AntiForgeryToken tanda anti-pemalsuan

Di MVC ASP.NET, token formulir dan token cookie dibuat secara otomatis setiap kali @Html.AntiForgeryToken() digunakan di halaman tampilan. Namun, jika kita ingin mencapai pengambilan manual di latar belakang, kita perlu menggunakan kelas System.Web.Helpers.AntiForgery, dan teman-teman yang tertarik untuk melihat kode sumber akan menemukan bahwa pada kenyataannya, metode panggilan internal @Html.AntiForgeryToken() sama dengan kelas AntiForgery.

Ini terutama digunakan untuk mendapatkan formulir dan token cookie yang sesuai melalui dua metode statis: AntiForgery.GetHtml() atau AntiForgery.GetTokens(string oldCookieToken, out string newCookieToken, out string formToken). Namun, perlu dicatat bahwa setelah metode GetHtml dipanggil, token cookie yang sesuai akan dibuat secara otomatis, dan kemudian sepotong kode HTML dengan bidang tersembunyi nilai token formulir akan dikembalikan secara langsung, dan nilai yang dikembalikan akan dalam bentuk ini:

<input name="__RequestVerificationToken" type="hidden" value="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

Nama nama bidang tersembunyi umumnya ditetapkan ke "__RequestVerificationToken", dan nilainya adalah token keamanan terenkripsi. Bidang tersembunyi ini biasanya ditempatkan dalam formulir yang akan dikirimkan, dan pengiriman akhir diverifikasi terhadap token cookie.

Jika Anda menggunakan metode GetTokens, Anda dapat memperoleh formulir terenkripsi dan token cookie setelah meneruskan parameter yang sesuai, tetapi di sini Anda perlu menyimpan sendiri nilai yang sesuai.

Selanjutnya, kami akan memperkenalkan metode memperbarui AntiForgeryToken secara manual, terutama melalui AJAX.

Kode Paket:



Kode pengujian:



Kami menemukan bahwa saat mengirim permintaan ajax, parameter __RequestVerificationToken disertakan secara otomatis, seperti yang ditunjukkan pada gambar di bawah ini:







Mantan:Tutorial Riwayat Perintah Historis Tampilan Windows CMD
Depan:Temui Azure DevOps
 Tuan tanah| Dipaparkan pada 2019-9-25 18:09:46 |
Dipaparkan pada 2019-11-10 15:06:37 |
Bukankah Anda menulis rencana perawatan latar belakang? Pemrosesan latar belakang di dalam header berbeda dengan pemrosesan latar belakang tanpa header
 Tuan tanah| Dipaparkan pada 2019-11-21 10:38:40 |
danqingcheng Posted on 2019-11-10 15:06
Bukankah Anda menulis rencana perawatan latar belakang? Pemrosesan latar belakang di dalam header berbeda dengan pemrosesan latar belakang tanpa header

Hmm, saya perlu menulis ulang filternya
 Tuan tanah| Dipaparkan pada 2021-2-20 19:22:14 |
mvc ajax dengan AntiForgeryToken untuk mencegah serangan CSRF
https://www.itsvse.com/thread-4207-1-1.html
Dipaparkan pada 2021-12-9 18:41:29 |
testtesttesttesttesttest
 Tuan tanah| Dipaparkan pada 2022-4-17 12:59:39 |
 Tuan tanah| Dipaparkan pada 2024-9-26 15:57:52 |
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com