Bisakah Anda menjelaskan tujuan ValidateAntiForgeryToken dan menunjukkan kepada saya contoh tentang ValidateAntiForgeryToken
di MVC 4?
Saya tidak dapat menemukan contoh yang menjelaskan atribut ini?
c#
asp.net-mvc
asp.net-mvc-4
Tabriz Atayi
sumber
sumber
.BeginForm
helper. Jadi benda ini ada di sana secara otomatis, seperti di RailsJawaban:
Dukungan anti-pemalsuan MVC menulis nilai unik untuk cookie khusus HTTP dan kemudian nilai yang sama ditulis ke formulir. Saat halaman dikirimkan, kesalahan muncul jika nilai cookie tidak cocok dengan nilai formulir.
Penting untuk dicatat bahwa fitur ini mencegah pemalsuan permintaan lintas situs . Yaitu, formulir dari situs lain yang memposting ke situs Anda dalam upaya untuk mengirimkan konten tersembunyi menggunakan kredensial pengguna yang diautentikasi. Serangan melibatkan menipu pengguna yang masuk log untuk mengirimkan formulir, atau dengan hanya secara terprogram memicu formulir ketika halaman dimuat.
Fitur ini tidak mencegah pemalsuan data jenis lain atau merusak serangan berbasis.
Untuk menggunakannya, hiasi metode tindakan atau pengontrol dengan
ValidateAntiForgeryToken
atribut dan lakukan panggilan ke@Html.AntiForgeryToken()
dalam formulir yang diposkan ke metode tersebut.sumber
Tujuan dasar dari atribut ValidateAntiForgeryToken adalah untuk mencegah serangan pemalsuan permintaan lintas situs.
Pemalsuan permintaan lintas situs adalah serangan di mana elemen skrip, perintah jahat, atau kode berbahaya dikirim dari peramban pengguna tepercaya. Untuk informasi lebih lanjut tentang hal ini, silakan kunjungi http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages .
Sangat mudah digunakan, Anda perlu menghias metode dengan atribut ValidateAntiForgeryToken seperti di bawah ini:
Ini berasal dari namespace System.Web.Mvc.
Dan dalam pandangan Anda, tambahkan kode ini untuk menambahkan token sehingga digunakan untuk memvalidasi formulir setelah pengiriman.
sumber
Di ASP.Net Core token anti pemalsuan secara otomatis ditambahkan ke formulir, jadi Anda tidak perlu menambahkan
@Html.AntiForgeryToken()
jika Anda menggunakan elemen bentuk silet atau jika Anda menggunakan IHtmlHelper.BeginForm dan jika metode formulir tidak MENDAPATKAN.Ini akan menghasilkan elemen input untuk formulir Anda yang mirip dengan ini:
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8HSQ_cdnkvBPo-jales205VCq9ISkg9BilG0VXAiNm3Fl5Lyu_JGpQDA4_CLNvty28w43AL8zjeR86fNALdsR3queTfAogif9ut-Zd-fwo8SAYuT0wmZ5eZUYClvpLfYm4LLIVy6VllbD54UxJ8W6FA">
Dan ketika pengguna mengirimkan formulir token ini diverifikasi di sisi server jika validasi diaktifkan.
[ValidateAntiForgeryToken]
atribut dapat digunakan untuk tindakan. Permintaan yang dibuat pada tindakan yang menerapkan filter ini diblokir kecuali permintaan tersebut menyertakan token anti-pemalsuan yang valid.[AutoValidateAntiforgeryToken]
atribut dapat digunakan terhadap pengontrol. Atribut ini bekerja secara identik dengan atribut ValidateAntiForgeryToken, kecuali bahwa itu tidak memerlukan token untuk permintaan yang dibuat menggunakan metode HTTP berikut:GET HEAD OPTIONS TRACE
Informasi tambahan: https://docs.microsoft.com/pl-pl/aspnet/core/security/anti-request-forgery
sumber
Microsoft menyediakan fungsionalitas internal yang kami gunakan dalam aplikasi kami untuk tujuan keamanan, jadi tidak ada yang bisa meretas situs kami atau menyerang beberapa informasi penting.
Dari Purpose Of ValidateAntiForgeryToken In MVC Application oleh Harpreet Singh:
sumber