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

Melihat: 46433|Jawab: 7

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

[Salin tautan]
Diposting pada 12/09/2019 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| Diposting pada 25/09/2019 18.09.46 |
Diposting pada 10/11/2019 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| Diposting pada 21/11/2019 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| Diposting pada 20/02/2021 19.22.14 |
mvc ajax dengan AntiForgeryToken untuk mencegah serangan CSRF
https://www.itsvse.com/thread-4207-1-1.html
Diposting pada 09/12/2021 18.41.29 |
testtesttesttesttesttest
 Tuan tanah| Diposting pada 17/04/2022 12.59.39 |
 Tuan tanah| Diposting pada 26/09/2024 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