ValidateAntiForgeryToken: Tujuan dan Pelaksanaannya
Borang dalam aplikasi web MVC selalunya menjadi sasaran serangan pemalsuan permintaan merentas tapak (CSRF). Serangan CSRF berlaku apabila tapak web berniat jahat menghantar permintaan ke tapak web yang dipercayai dan menipu penyemak imbas pengguna yang dibenarkan supaya menyerahkan permintaan tersebut, dengan itu membenarkan penyerang melakukan tindakan yang tidak dibenarkan.
Untuk menangani kerentanan ini, rangka kerja .NET MVC menawarkan ValidateAntiForgeryToken atribut, yang memainkan peranan penting dalam mencegah serangan CSRF. Atribut ini memastikan bahawa borang yang diserahkan kepada kaedah tindakan tertentu sebenarnya berasal dari pelayan dan bukan daripada sumber luaran.
Cara MengesahkanAntiForgeryToken Berfungsi
Apabila kaedah tindakan adalah dihiasi dengan ValidateAntiForgeryToken, rangka kerja MVC menjana token yang unik sekali dan membenamkannya dalam HTML medan tersembunyi borang menggunakan kaedah pembantu @Html.AntiForgeryToken(). Token ini unik kepada pengguna, sesi dan penyemak imbas.
Apabila pengguna menyerahkan borang, rangka kerja membandingkan token dalam medan tersembunyi dengan token yang dijana sebelum ini. Jika token sepadan, ia mengesahkan penyerahan borang. Jika tidak, ia menimbulkan ralat dan menolak penyerahan, mengurangkan serangan CSRF.
Contoh Penggunaan
Untuk melaksanakan atribut ValidateAntiForgeryToken dalam MVC 4, ikut langkah berikut:
Hiaskan kaedah tindakan yang anda mahu lindungi dengan atribut [ValidateAntiForgeryToken]:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(MyModel model) { // Code to handle the form submission }
Tambahkan panggilan ke @Html.AntiForgeryToken() dalam teg borang:
<form action="@Url.Action("Create", "MyController")" method="post"> @Html.AntiForgeryToken() <!-- Other form controls --> </form>
Nota: The Kaedah pembantu @Html.AntiForgeryToken() mesti diletakkan dalam teg borang, tetapi sebelum semua kawalan borang lain.
Dengan mengikut langkah ini, anda boleh melindungi aplikasi web MVC anda dengan berkesan daripada serangan CSRF dan memastikan integriti daripada penyerahan borang anda.
Atas ialah kandungan terperinci Bagaimanakah ValidateAntiForgeryToken Mencegah Serangan CSRF dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!