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

Melihat: 44609|Jawab: 1

[Sumber] ValidateAntiForgeryToken dan AutoValidateAntiforgeryToken tag anti-pemalsuan dijelaskan secara rinci

[Salin tautan]
Diposting pada 20/02/2021 19.57.29 | | | |
Untuk mencegah serangan CSRF, asp.net mvc menyediakan fitur serangan anti-pemalsuan ValidateAntiForgeryToken, dan dalam versi baru kerangka kerja inti asp.net, Microsoft menyediakan fitur AutoValidateAntiforgeryToken, khususnya ValidateAntiForgeryToken dan AutoValidateAntiforgeryToken Apa bedanya, artikel ini akan menjelaskan secara detail.

mvc ajax dengan AntiForgeryToken untuk mencegah serangan CSRF
https://www.itsvse.com/thread-4207-1-1.html

ASP.NET CSRF menyerang enkapsulasi permintaan Ajax
https://www.itsvse.com/thread-8077-1-1.html
Konsep CSRF

Pemalsuan Permintaan Lintas Situs CSRF, seperti serangan XSS, sangat berbahaya, Anda dapat memahaminya dengan cara ini: penyerang mencuri identitas Anda dan mengirimkan permintaan berbahaya atas nama Anda, yang sepenuhnya sah untuk server, tetapi menyelesaikan tindakan yang diharapkan penyerang, seperti mengirim email dan pesan atas nama Anda, mencuri akun Anda, menambahkan administrator sistem, atau bahkan membeli barang, transfer mata uang virtual, dll. Web A adalah situs web dengan kerentanan CSRF, Web B adalah situs web berbahaya yang dibuat oleh penyerang, dan Pengguna C adalah pengguna sah Web A.


ASP.NET MVC melawan serangan CSRF

Pada halaman tampilan, gunakan @Html.AntiForgeryToken() untuk menambahkan tag, dan ketika pengguna mengakses halaman, backend akan secara otomatis menghasilkan kode html tersembunyi dengan tag, sebagai berikut:


<nama input="__RequestVerificationToken" type="tersembunyi" value="CfDJ8FBn4LzSYglJpE6Q0fWvZ8WDMTgwK49lDU1XGuP5-5j4JlSCML_IDOO3XDL5EOyI_mS2Ux7lLSfI7ASQnIIxo2ScEJvnABf9v51TUZl_iM2S63zuiPK4lcXRPa_KUUDbK-LS4HD16pJusFRppj-dEGc" />
Pengontrol latar belakang perlu diatur [ValidateAntiForgeryToken] untuk mencegah pemalsuan pengiriman formulir.

ValidateAntiForgeryToken dan AutoValidateAntiforgeryToken berbeda

AutoValidateAntiforgeryTokenAuthorizationFilter mewarisi ValidateAntiforgeryTokenAuthorizationFilter, tetapi hanya menulis ulang metode ShouldValidate di dalamnya.

Validasi OtomatisAntiforgeryToken yang menyebabkan validasi token anti-pemalsuan untuk semua metode HTTP yang tidak aman.Metode HTTP selain GET, HEAD, OPTIONS, dan TRACE semuanya memerlukan token anti-pemalsuan。 Ini dapat diterapkan sebagai filter global untuk memicu validasi token anti-pemalsuan aplikasi secara default.

Login hyperlink terlihat.

AutoValidateAntiforgeryTokenAttribute memvalidasi panggilan ke AutoValidateAntiforgeryTokenAuthorizationFilter, yang mewarisi dari ValidateAntiforgeryTokenAuthorizationFilter,Metode ShouldValidate telah ditulis ulang, mengembalikan true berarti perlu divalidasi, dan mengembalikan false tidak akan divalidasi, seperti yang ditunjukkan pada gambar di bawah ini:

Analisis kode sumber:



AutoValidateAntiforgeryTokenAttribute memungkinkan validasi token anti-pemalsuan diterapkan secara global ke semua metode yang tidak aman, seperti POST, PUT, PATCH, dan DELETE. Jadi, Anda tidak perlu menambahkan properti [ValidateAntiForgeryToken] ke setiap tindakan yang memerlukannya.

Untuk menggunakannya, tambahkan kode berikut ke metode class Startup ConfigureServices Anda:


Jika Anda perlu mengabaikan autentikasi anti-pemalsuan, Anda dapat menambahkan [Abaikan AntiforgeryTokenke tindakan.

Terkadang Anda mungkin perlu menandai beberapa permintaan pada pengontrol sementara memerlukan beberapa permintaan yang tidak perlu dipalsukan, seperti berbagai operasi berbasis GET. Ada beberapa alat yang dapat Anda gunakan untuk membuat prosesnya lebih nyaman dan nyaman. Yang pertama adalah properti AutoValidateAntiforgeryToken. Ini berperilaku seperti properti ValidateAntiForgeryToken. Namun, itu akan secara otomatis mengabaikan tindakan yang dipanggil oleh metode yang dirancang untuk pengambilan data: GET, HEAD, OPTIONS, dan TRACE. Ini memungkinkan Anda untuk dengan cepat dan mudah menambahkan metode anti-pemalsuan ke semua metode yang dapat mengubah data tanpa memengaruhi cara data diambil.

Kode berikut adalah contoh properti AutoValidateAntiforgeryToken:


Dalam contoh ini, kedua operasi Indeks normal (GET) akan berfungsi terlepas dari sumbernya, sedangkan operasi Indeks dengan metode POST dan operasi RemoveUser sebagai metode Hapus akan mengharuskan klien untuk menggunakan token anti-pemalsuan.

Sesuaikan informasi yang relevan

Banyak orang mungkin bertanya-tanya apakah nama domain tersembunyi yang dihasilkan dapat diganti dengan nama mereka sendiri, dan apakah nama cookie dapat diubah menjadi nama mereka sendiri.

Jawabannya adalah ya, mari kita tunjukkan secara singkat:

Dalam metode ConfigureServices Startup, tambahkan yang berikut ini untuk mengubah nama default.


Catatan: Perbedaan terbesar antara inti asp.net dan asp.net adalah,Core mendukung meneruskan parameter validasi dengan meminta header, bukan untuk membentuk bentuk!

string const pribadi AntiforgeryTokenFieldName = "__RequestVerificationToken";
string const pribadi AntiforgeryTokenHeaderName = "RequestVerificationToken";


Anda dapat melihat kode sumber:Login hyperlink terlihat.

Kode pengujian:





Hasil: Mencoba mengakses metode test1 mengembalikan kesalahan 400, mengakses metode test2 mengembalikan parameter str yang kami lewati, dan Anda dapat melihat bahwa fitur AutoValidateAntiforgeryToken tidak mencegat permintaan GET.

(Akhir)




Mantan:Fiddler mengganti tautan, meminta pengalihan penerusan
Depan:[giliran] Jumlah SQL Server SQL
 Tuan tanah| Diposting pada 08/07/2023 22.07.08 |
ASP.NET MVC meminta Validasi Konten Berbahaya XSS (ValidateInput)
https://www.itsvse.com/thread-10624-1-1.html
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